Rayrun

What is the recommended way to configure the number of workers in Playwright Test to avoid resource contention issues?

Answer

Configuring Workers in @playwright/test

To avoid resource contention issues, it's essential to limit the number of parallel worker processes. You can do this by setting the workers option in the command line or in the configuration file.

Command Line

Use the --workers flag followed by the desired number of workers:

npx playwright test --workers 4

Configuration File

In your playwright.config.ts file, set the workers option:

import { PlaywrightTestConfig } from '@playwright/test';

const config: PlaywrightTestConfig = {
  workers: process.env.CI ? 2 : undefined,
  // Other configurations...
};

export default config;

This example sets the number of workers to 2 when running in a CI environment, and uses the default value otherwise.

Running Tests Concurrently

By default, test files run in parallel, while tests within a single file run sequentially. You can configure your project to run all tests in all files in parallel using the testProject.fullyParallel or testConfig.fullyParallel options.

If you have many independent tests within a single file that you want to run concurrently, use test.describe.configure() with the mode: 'parallel' option:

import { test } from '@playwright/test';

const parallel = test.describe.configure({ mode: 'parallel' });

parallel('Independent tests', () => {
  test('Test 1', async ({ page }) => {
    await page.goto('https://ray.run/');
    // Test logic...
  });

  test('Test 2', async ({ page }) => {
    await page.goto('https://ray.run/');
    // Test logic...
  });
});

Remember to balance parallelism and resource usage to avoid strange errors during testing.

Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.