Skip to content

Requirements

Endform is a parallel, remote test runner. Your playwright tests will be run on many separate machine in the cloud.

We respect the fullyParallel Playwright configuration option:

This means that:

  • If fullyParallel: false (Playwright default), each file will run in parallel.
  • If fullyParallel: true, each test case will run in parallel.

Generally, this means that your tests need to be independent of each other, in order to not interfere with other tests running at the same time.

If you keep your tests decoupled from your application already by, for example, using apis to generate data, you are probably ready to use endform.

Since your tests will be running on remote machines, the servers you are testing against need to be accesible to the remote runners. There are two ways to acheive this:

  • You are running preview infrastructure or a testing environment that is exposed to the internet anyway.
  • Endform can automatically shuttle traffic between the remote runners and the machine your CLI runs on. Check out the guide on proxying traffic via your local network for more information about this approach.
  • We support playwright projects written in typescript and javascript.
  • The length of an individual test run is limited to 4 minutes (same as the testConfig.timeout option). The playwright default timeout is 30 seconds. This does not include retries.
  • If you are running fullyParallel: false, then the maximum timeout of four minutes applies to each file.
  • We currently only support the latest two minor versions of playwright.
  • We currently only support Chrome. We run the same version of Chrome as the playwright version you are running ships with. Let us know if you are in need of more browsers and we can prioritise this.

Endform tries to directly use or replicate all playwright configuration options. To understand how most of these options work, please refer to the Playwright documentation.

There are a few exceptions to this.

Options that we currently don’t support, but will do in future (let us know and we will prioritize them):

  • .only()
  • .fail()
  • A version of Node.js that is more recent than the latest LTS version (Node 22+).
  • In the remote test environment, your tests will run on node lts.
  • We currently only support Chrome. We run the same version of Chrome as the playwright version you are running ships with.
  • We currently only support Linux and MacOS.