Playwright:如何用JSON多组数据驱动单条测试用例
解决Playwright读取多组JSON测试数据的通用适配问题
问题修正步骤:
修正JSON文件拼写错误
你的JSON文件里键名是"allCaes",但代码中导入的是allCases,会导致导入失败,需要把JSON里的"allCaes"改为"allCases":{ "allCases": { "TestCase1": { "originInput": "", "destinationInput": "" }, "TestCase2": { "originInput": "", "destinationInput": "" } } }动态获取当前测试用例数据
循环中的data变量就是每个测试用例的键名(TestCase1、TestCase2),直接用它替代硬编码的TestCase1即可实现通用读取。同时建议给测试用例名称加上当前测试用例标识,方便在测试报告中区分不同用例的执行结果。补充目的地输入参数
你的代码中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
相关产品推荐
相关产品推荐

