|
|
@ -32,10 +32,22 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|
|
|
)
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp create_filter(user) do
|
|
|
|
|
|
|
|
Pleroma.Filter.create(%Pleroma.Filter{
|
|
|
|
|
|
|
|
user_id: user.id,
|
|
|
|
|
|
|
|
phrase: "must be filtered",
|
|
|
|
|
|
|
|
hide: true
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp delete_filter(filter), do: Repo.delete(filter)
|
|
|
|
|
|
|
|
|
|
|
|
defp fetch_timelines(user) do
|
|
|
|
defp fetch_timelines(user) do
|
|
|
|
fetch_home_timeline(user)
|
|
|
|
fetch_home_timeline(user)
|
|
|
|
|
|
|
|
fetch_home_timeline_with_filter(user)
|
|
|
|
fetch_direct_timeline(user)
|
|
|
|
fetch_direct_timeline(user)
|
|
|
|
fetch_public_timeline(user)
|
|
|
|
fetch_public_timeline(user)
|
|
|
|
|
|
|
|
fetch_public_timeline_with_filter(user)
|
|
|
|
fetch_public_timeline(user, :with_blocks)
|
|
|
|
fetch_public_timeline(user, :with_blocks)
|
|
|
|
fetch_public_timeline(user, :local)
|
|
|
|
fetch_public_timeline(user, :local)
|
|
|
|
fetch_public_timeline(user, :tag)
|
|
|
|
fetch_public_timeline(user, :tag)
|
|
|
@ -61,7 +73,7 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
defp fetch_home_timeline(user) do
|
|
|
|
defp fetch_home_timeline(user, title_end \\ "") do
|
|
|
|
opts = opts_for_home_timeline(user)
|
|
|
|
opts = opts_for_home_timeline(user)
|
|
|
|
|
|
|
|
|
|
|
|
recipients = [user.ap_id | User.following(user)]
|
|
|
|
recipients = [user.ap_id | User.following(user)]
|
|
|
@ -84,9 +96,11 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|
|
|
|> Enum.reverse()
|
|
|
|
|> Enum.reverse()
|
|
|
|
|> List.last()
|
|
|
|
|> List.last()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
title = "home timeline " <> title_end
|
|
|
|
|
|
|
|
|
|
|
|
Benchee.run(
|
|
|
|
Benchee.run(
|
|
|
|
%{
|
|
|
|
%{
|
|
|
|
"home timeline" => fn opts -> ActivityPub.fetch_activities(recipients, opts) end
|
|
|
|
title => fn opts -> ActivityPub.fetch_activities(recipients, opts) end
|
|
|
|
},
|
|
|
|
},
|
|
|
|
inputs: %{
|
|
|
|
inputs: %{
|
|
|
|
"1 page" => opts,
|
|
|
|
"1 page" => opts,
|
|
|
@ -108,6 +122,14 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|
|
|
)
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp fetch_home_timeline_with_filter(user) do
|
|
|
|
|
|
|
|
{:ok, filter} = create_filter(user)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fetch_home_timeline(user, "with filters")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delete_filter(filter)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
defp opts_for_direct_timeline(user) do
|
|
|
|
defp opts_for_direct_timeline(user) do
|
|
|
|
%{
|
|
|
|
%{
|
|
|
|
visibility: "direct",
|
|
|
|
visibility: "direct",
|
|
|
@ -210,6 +232,14 @@ defmodule Pleroma.LoadTesting.Fetcher do
|
|
|
|
fetch_public_timeline(opts, "public timeline")
|
|
|
|
fetch_public_timeline(opts, "public timeline")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp fetch_public_timeline_with_filter(user) do
|
|
|
|
|
|
|
|
{:ok, filter} = create_filter(user)
|
|
|
|
|
|
|
|
opts = opts_for_public_timeline(user)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fetch_public_timeline(opts, "public timeline with filters")
|
|
|
|
|
|
|
|
delete_filter(filter)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
defp fetch_public_timeline(user, :local) do
|
|
|
|
defp fetch_public_timeline(user, :local) do
|
|
|
|
opts = opts_for_public_timeline(user, :local)
|
|
|
|
opts = opts_for_public_timeline(user, :local)
|
|
|
|
|
|
|
|
|
|
|
|