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

如何在Playwright框架中仅运行标记为Yes的测试?

基于Playwright JavaScript实现仅运行标记为Yes的测试方案

方法一:动态生成筛选后的测试用例

直接读取你的JSON测试数据文件,筛选出Execute为Yes的条目,循环生成对应测试用例,只运行符合条件的测试:

// 引入测试数据文件
const testData = require('./test-data.json');
// 筛选需要执行的测试条目
const shouldRunTests = testData.filter(item => item.Execute === 'Yes');

// 为每个符合条件的测试生成用例
shouldRunTests.forEach(testCase => {
  test(`执行测试ID: ${testCase.TestID}`, async ({ page }) => {
    // 这里写入你的测试逻辑,直接使用testCase中的数据
    await page.goto(testCase.targetUrl);
    // 比如输入用户名密码、验证结果等操作
  });
});

方法二:用命令行--grep参数过滤

如果每个独立测试文件的测试名称包含对应TestID(比如test('TestID: T001 - 用户登录测试', ...)),可以先从JSON中提取允许执行的TestID,再用--grep匹配:

  1. 写个小脚本生成匹配命令:
const fs = require('fs');
const testData = JSON.parse(fs.readFileSync('./test-data.json', 'utf8'));
// 提取所有标记为Yes的TestID,用|拼接成正则匹配串
const allowedIDs = testData.filter(item => item.Execute === 'Yes').map(item => item.TestID).join('|');
// 输出Playwright测试命令
console.log(`npx playwright test --grep="${allowedIDs}"`);
  1. 运行这个脚本,复制输出的命令执行即可,只会运行名称包含目标TestID的测试。

方法三:给测试加跳过标记

在每个独立测试文件里,先判断对应TestID的Execute状态,用.skip()标记不需要执行的测试:
比如在T001.test.js中:

const testData = require('./test-data.json');
// 找到当前测试对应的条目
const currentTest = testData.find(item => item.TestID === 'T001');

test('用户登录测试', async ({ page }) => {
  // 你的测试逻辑代码
}).skip(currentTest.Execute !== 'Yes', '该测试未标记为执行');

之后直接运行npx playwright test,未标记为Yes的测试会自动跳过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:47:17