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

如何使用Playwright串行运行指定子集测试用例?

解决方案

方法1:用串行测试组(最直接推荐)

Playwright原生支持给测试组配置串行执行模式,你只需要把那5个修改同一页面的测试单独放进一个test.describe块,开启serial模式就行。这个组里的测试会严格按顺序执行,不会互相并行,而剩下的82个测试依然能正常并行跑,完全不影响整体效率。

示例代码:

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

// 这里放其他82个可以并行的测试
test('普通并行测试1', async ({ page }) => {
  // 测试逻辑
});

// 给需要串行的测试单独建组,配置串行模式
test.describe.configure({ mode: 'serial' });
test.describe('修改同一页面的串行测试集合', () => {
  test('串行测试1 - 修改页面内容', async ({ page }) => {
    // 你的页面修改逻辑
  });

  test('串行测试2 - 基于修改后的页面验证', async ({ page }) => {
    // 依赖上一个测试的逻辑
  });

  // 剩下3个同页面修改测试依次写在这里
});

方法2:自定义标记+手动控制(适合特殊场景)

如果不想用测试组,也可以给这5个测试加自定义标记(比如@serial-page),再通过测试配置或钩子来控制执行顺序,但这种方式需要自己处理串行逻辑,相对麻烦,不如第一种省心。

示例代码(加标记):

test('页面修改测试1', { tag: '@serial-page' }, async ({ page }) => {
  // 测试逻辑
});

之后可以在playwright.config.ts里通过自定义测试排序逻辑,让带@serial-page标记的测试按顺序执行,但Playwright没有原生的队列配置,所以更推荐第一种方法。

额外注意点

因为所有测试共用同一个userid,串行组里的测试要记得清理状态——比如每个测试结束后把页面恢复到初始状态,避免后面的测试被前面的修改影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:44:56