Run e2e load test to compare to playwright JS client#2
Closed
Conversation
This was referenced Oct 25, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ℹ️ If you have feedback, consider commenting on ftes/phoenix_test_playwright#86
Run load test to compare
phoenix_test_playwright(ex) performance to official playwrightjavascript(js) client.Measure total test execution time for combinations of
concurrency Cand parallelizabletests T.Also partially evaluate experimental browser pool ftes/phoenix_test_playwright#86
ex_pool.Chrome only.
Findings
experformance is on parjsin most considered constellations.For
jsandex, C=number of CPU cores is optimal.For
ex, the ExUnit default--max-cases = 2x coresis nearly as good.jsperformance scales slightly better for large number of tests by reusing browsers.For
C=16/T=256there was an 8% difference (134.0svs145.1s).ex_poolscales better thanex, but worse thanjs.Concurrency C
js:--workersex:--max-casesphoenix_test_playwrightdoes not reuse browser instancesex:--max-casesandbrowser_pool_sizeexwithC=16andC=32are similar, there would likely be little difference.Tests T
Number of test execution units that can be run concurrently.
js: number of tests (fullyParallel = trueused, so that they are run concurrently even when in a single test suite)exandex_pool: number of test suites (parameterized), with 1 test eachFor both
jsandex/ex_pool, each execution unit contains 1 long-running test (registerflow repeated 10 times).Result details
CTNotes
MIX_ENV=prod mix phx.serverex_poolcode see Run e2e load test to compare browser pooling to playwright JS client #3Test script (roughly)