Is FLAME well-suited for load-testing?

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