|
|
@@ -32,10 +32,22 @@ defmodule Pleroma.LoadTesting.Fetcher do |
|
|
|
) |
|
|
|
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 |
|
|
|
fetch_home_timeline(user) |
|
|
|
fetch_home_timeline_with_filter(user) |
|
|
|
fetch_direct_timeline(user) |
|
|
|
fetch_public_timeline(user) |
|
|
|
fetch_public_timeline_with_filter(user) |
|
|
|
fetch_public_timeline(user, :with_blocks) |
|
|
|
fetch_public_timeline(user, :local) |
|
|
|
fetch_public_timeline(user, :tag) |
|
|
@@ -61,7 +73,7 @@ defmodule Pleroma.LoadTesting.Fetcher do |
|
|
|
} |
|
|
|
end |
|
|
|
|
|
|
|
defp fetch_home_timeline(user) do |
|
|
|
defp fetch_home_timeline(user, title_end \\ "") do |
|
|
|
opts = opts_for_home_timeline(user) |
|
|
|
|
|
|
|
recipients = [user.ap_id | User.following(user)] |
|
|
@@ -84,9 +96,11 @@ defmodule Pleroma.LoadTesting.Fetcher do |
|
|
|
|> Enum.reverse() |
|
|
|
|> List.last() |
|
|
|
|
|
|
|
title = "home timeline " <> title_end |
|
|
|
|
|
|
|
Benchee.run( |
|
|
|
%{ |
|
|
|
"home timeline" => fn opts -> ActivityPub.fetch_activities(recipients, opts) end |
|
|
|
title => fn opts -> ActivityPub.fetch_activities(recipients, opts) end |
|
|
|
}, |
|
|
|
inputs: %{ |
|
|
|
"1 page" => opts, |
|
|
@@ -108,6 +122,14 @@ defmodule Pleroma.LoadTesting.Fetcher do |
|
|
|
) |
|
|
|
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 |
|
|
|
%{ |
|
|
|
visibility: "direct", |
|
|
@@ -210,6 +232,14 @@ defmodule Pleroma.LoadTesting.Fetcher do |
|
|
|
fetch_public_timeline(opts, "public timeline") |
|
|
|
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 |
|
|
|
opts = opts_for_public_timeline(user, :local) |
|
|
|
|
|
|
|