Merge branch 'develop' into global-status-expiration
[akkoma] / benchmarks / load_testing / users.ex
index bc31dc08bdfebb5f1966239704aa1183e42577e1..1a8c6e22f5b2a02ff7f0a4eeaaf1242305d786a7 100644 (file)
@@ -14,7 +14,7 @@ defmodule Pleroma.LoadTesting.Users do
     friends: 100
   ]
 
-  @max_concurrency 30
+  @max_concurrency 10
 
   @spec generate(keyword()) :: User.t()
   def generate(opts \\ []) do
@@ -31,9 +31,9 @@ defmodule Pleroma.LoadTesting.Users do
   end
 
   def generate_users(max) do
-    IO.puts("Starting generating #{opts[:users]} users...")
+    IO.puts("Starting generating #{max} users...")
 
-    {time, _} =
+    {time, users} =
       :timer.tc(fn ->
         Task.async_stream(
           1..max,
@@ -41,10 +41,11 @@ defmodule Pleroma.LoadTesting.Users do
           max_concurrency: @max_concurrency,
           timeout: 30_000
         )
-        |> Stream.run()
+        |> Enum.to_list()
       end)
 
-    IO.puts("Generating users take #{to_sec(time)} sec.\n")
+    IO.puts("Generating users took #{to_sec(time)} sec.\n")
+    users
   end
 
   defp generate_user(i) do
@@ -87,7 +88,7 @@ defmodule Pleroma.LoadTesting.Users do
   end
 
   def make_friends(main_user, max) when is_integer(max) do
-    IO.puts("Starting making friends for #{opts[:friends]} users...")
+    IO.puts("Starting making friends for #{max} users...")
 
     {time, _} =
       :timer.tc(fn ->
@@ -104,10 +105,10 @@ defmodule Pleroma.LoadTesting.Users do
         |> run_stream(main_user)
       end)
 
-    IO.puts("Making friends take #{to_sec(time)} sec.\n")
+    IO.puts("Making friends took #{to_sec(time)} sec.\n")
   end
 
-  defp make_friends(%User{} = main_user, %User{} = user) do
+  def make_friends(%User{} = main_user, %User{} = user) do
     {:ok, _} = User.follow(main_user, user)
     {:ok, _} = User.follow(user, main_user)
   end