I had this crazy idea that FLAME could be used for load-testing.
If using Fly backend, we could spin up VMs that run some selenium session using Wallaby or similar. It would be a nice way to see the effect of global-distance latencies. I envision it as a separate project which accompanies the true “product” project. Some minimal Elixir app with hopefully just :wallaby
as a dependancy. The selenium session could hit a remote URL of, e.g. a “staging” version of the true product project.
Does this sound sane?
2 Likes
So I went ahead and did the crazy idea. I have a barebones load-testing app running on Fly that has only 3 deps - :wallaby
, :flame
and :libring
.
:libring
is just so I can copy-paste the :pogo
source code (really just 1 module) and modify it for my needs.
The concept is simple - make flame calls to start wallaby sessions wrapped in genservers under a distributed supervisor.
I have run it with up to 1000 concurrent logged in sessions. That I could successfully do on 20 performance-2x flame machines. I found that a max_concurrency of 10 works well for this spec (does not choke the chromedriver).
4 Likes