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

Playwright如何配置部分测试文件并行、其余串行执行

Playwright 混合串行/并行测试执行配置方案

配置失效原因

你之前在文件顶层添加test.describe.configure({ mode: 'parallel' })时,该配置作用域覆盖了整个文件的所有测试用例,因此所有用例都会被设为并行执行,不符合预期。

可落地配置方案

方案1:按执行模式拆分测试文件(最稳定,推荐)

  • 将所有存在执行顺序依赖(比如登录鉴权前置)、会修改全局UI状态、会干扰截图校验的串行测试,统一归集到独立的测试文件中存放
  • 全局配置文件默认保留parallel并行模式,仅在串行测试文件的最顶层添加文件级配置:
test.describe.configure({ mode: 'serial' })
  • 该配置仅对当前文件生效,文件内用例会严格按照编写顺序串行执行,前序用例失败时后续用例默认跳过,完全不会干扰其他并行文件的执行逻辑

方案2:单文件内按用例组单独配置模式

如果不想拆分文件,可以将同文件内的用例按执行属性分到独立的describe块中,给每个块单独配置执行模式,禁止在文件顶层添加全局模式配置,示例代码如下:

// 串行用例组:有依赖、会影响全局状态的用例放这里
test.describe('全局依赖相关测试', () => {
  test.describe.configure({ mode: 'serial' })

  test('完成账号登录鉴权', async ({ page }) => {
    // 登录逻辑实现
  })

  test('执行全局UI布局调整操作', async ({ page }) => {
    // 全局布局修改逻辑
  })

  test('全局布局场景截图校验', async ({ page }) => {
    // 截图比对逻辑
  })
})

// 并行用例组:无依赖的独立功能测试放这里
test.describe('独立功能测试', () => {
  test.describe.configure({ mode: 'parallel' })

  test('独立功能点校验1', async ({ page }) => {
    // 测试逻辑
  })

  test('独立功能点校验2', async ({ page }) => {
    // 测试逻辑
  })
})

避坑提示

涉及全局状态修改的串行测试组,建议在Playwright配置中为其单独分配独立项目,指定workers: 1,彻底避免和并行用例抢占资源、干扰截图结果。如果登录鉴权是所有测试的通用前置,也可以抽为globalSetup全局前置任务执行,不用放到单个测试用例中串行跑,能大幅缩短整体测试耗时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:31:04