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

Playwright:如何用JSON多组数据驱动单条测试用例

解决Playwright读取多组JSON测试数据的通用适配问题

问题修正步骤:

  1. 修正JSON文件拼写错误
    你的JSON文件里键名是"allCaes",但代码中导入的是allCases,会导致导入失败,需要把JSON里的"allCaes"改为"allCases":

    {
      "allCases": {
        "TestCase1": {
          "originInput": "",
          "destinationInput": ""
        },
        "TestCase2": {
          "originInput": "",
          "destinationInput": ""
        }
      }
    }
    
  2. 动态获取当前测试用例数据
    循环中的data变量就是每个测试用例的键名(TestCase1、TestCase2),直接用它替代硬编码的TestCase1即可实现通用读取。同时建议给测试用例名称加上当前测试用例标识,方便在测试报告中区分不同用例的执行结果。

  3. 补充目的地输入参数
    你的代码中enterDestinationInput没有传参,结合JSON里的destinationInput字段,应该也动态传入对应数据。

修改后的完整代码:

import { allCases } from '../abcData.json';

// 遍历所有测试用例
Object.keys(allCases).forEach(testCaseKey => {
  // 测试用例名称加上当前用例标识
  test(`close selected origin - ${testCaseKey}`, async ({ page }) => {
    const homepage = new abcHomePage(page);
    await homepage.goto();
    await homepage.closeSelectedOrigin();
    // 动态获取当前用例的originInput
    await homepage.enterOriginInput(allCases[testCaseKey].originInput);
    // 动态传入当前用例的destinationInput
    await homepage.enterDestinationInput(allCases[testCaseKey].destinationInput);
    await homepage.selectStartDate();
    await homepage.selectEndDate();
    // 可在此补充后续断言或操作
  });
});

关键改动说明:

  • 使用allCases[testCaseKey]替代allCases.TestCase1,利用循环变量动态访问每个测试用例的数据,实现通用适配。
  • 测试用例名称添加-${testCaseKey},执行后能在Playwright测试报告中清晰看到每个测试用例的运行状态。
  • 补全enterDestinationInput的参数,确保JSON中的所有测试数据都被利用起来。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:39:18