You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Playwright每个项目使用独立worker同时运行互不干扰

Playwright多项目单站点串行执行配置方案

方案1:项目级maxWorkers配置(推荐,适用于Playwright v1.30及以上版本)

这是最贴合需求的原生配置方案,Playwright支持为每个项目单独配置最大worker数,全局worker数设置为4即可实现4个项目同时并行,每个项目内部最多1个worker串行执行,完全避免同站点账号并发冲突。

// playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
  // 全局worker数设置为4,刚好匹配4个区域项目
  workers: 4,
  projects: [
    {
      name: 'SE',
      use: { 
        baseURL: 'SE区域站点URL',
        username: 'SE测试账号',
        password: 'SE测试密码'
      },
      // 限制单个项目最多分配1个worker,内部用例强制串行执行
      maxWorkers: 1
    },
    {
      name: 'DK',
      use: { 
        baseURL: 'DK区域站点URL',
        username: 'DK测试账号',
        password: 'DK测试密码'
      },
      maxWorkers: 1
    },
    {
      name: 'NL',
      use: { 
        baseURL: 'NL区域站点URL',
        username: 'NL测试账号',
        password: 'NL测试密码'
      },
      maxWorkers: 1
    },
    {
      name: 'NO',
      use: { 
        baseURL: 'NO区域站点URL',
        username: 'NO测试账号',
        password: 'NO测试密码'
      },
      maxWorkers: 1
    },
  ]
});

方案2:低版本Playwright兼容方案

如果使用的Playwright版本低于v1.30,不支持项目级maxWorkers配置,可选择以下两种实现方式:

方式1:测试集串行标记

在所有复用的测试用例文件头部添加串行执行配置,同文件内的用例会强制串行执行,适配多项目复用场景:

// 公共测试用例文件,例如tests/shop.spec.ts
import { test } from '@playwright/test';

// 强制当前文件所有用例串行执行
test.describe.configure({ mode: 'serial' });

test('商品下单测试', async ({ page }) => {
  // 测试逻辑
});

test('订单查询测试', async ({ page }) => {
  // 测试逻辑
});

方式2:命令行多进程并行启动

使用多命令并行工具concurrently分别启动四个Playwright进程,每个进程单独跑一个项目、固定1个worker,完全隔离不同项目的执行资源:

  1. 安装依赖:
    npm i -D concurrently
  2. 配置package.json脚本:
{
  "scripts": {
    "test:all": "concurrently \"npm run test:se\" \"npm run test:dk\" \"npm run test:nl\" \"npm run test:no\"",
    "test:se": "playwright test --project=SE --workers=1",
    "test:dk": "playwright test --project=DK --workers=1",
    "test:nl": "playwright test --project=NL --workers=1",
    "test:no": "playwright test --project=NO --workers=1"
  }
}

执行npm run test:all即可实现四个站点测试同时启动、单站点串行执行的效果。

内容的提问来源于stack exchange,提问作者DIPIDIP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:24:03