Page MenuHomePhabricator

Run browser tests in parallel
Open, Needs TriagePublic

Description

(Apologies if this is a duplicate, I know there's been some discussion already but couldn't find it in Phabricator.)

Browser tests are slow, and there are a few opportunities for parallelization. The easiest step would be to run our QUnit and node-selenium tests in separate threads. After T199116 we could also run selenium tests for each repo in parallel, but this introduces the additional challenge of potential interaction between tests.

However, there are some questions to work through first:

  • Can our test webserver handle multiple clients? (See also T225218.)
  • Is it reasonable to run multiple chromedrivers on one machine? How much more memory will this require?
  • How many of our tests will become fragile, for example because they depend on a constant rather than randomly-generated title?

Event Timeline

awight created this task.Jun 28 2019, 8:58 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJun 28 2019, 8:58 PM

Is it reasonable to run multiple chromedrivers on one machine? How much more memory will this require?

I didn't test this, but I'm pretty sure we could reuse one chromedriver for all tests.

How many of our tests will become fragile, for example because they depend on a constant rather than randomly-generated title?

Every test should make sure it's dependencies (users, pages...) are randomly generated and not reused.