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

如何在Playwright JSON报告中获取测试断言统计数据

单个测试/测试套件的断言统计获取方法

结论

完全可以获取单个测试或测试套件的断言通过/失败总数,你需要调整报告生成配置或者直接解析测试框架的原始输出数据。

具体操作方案

1. 调整JSON报告生成配置

你当前使用的['json', { outputFile: 'test-results.json' }]仅输出顶层测试统计,需修改配置开启详细层级的报告输出,不同测试框架的配置方式如下:

  • Cypress:在reporterOptions中添加reportSuiteAsScenarios: true,或使用cypress-multi-reporters搭配mocha-junit-reporter生成带断言明细的报告。
  • Mocha:使用--reporter json时,默认会输出包含每个断言状态(passed/failed/skipped)的tests数组,避免使用精简版reporter配置即可。

2. 解析带明细的JSON报告

调整配置后生成的JSON报告会包含测试套件、测试用例的层级结构,示例如下:

{
  "stats": {...},
  "suites": [
    {
      "title": "用户登录测试套件",
      "tests": [
        {
          "title": "正确账号登录",
          "assertions": [
            { "passed": true, "title": "验证跳转至首页" },
            { "passed": true, "title": "验证用户名显示正确" }
          ]
        },
        {
          "title": "错误密码登录",
          "assertions": [
            { "passed": true, "title": "验证提示错误信息" },
            { "passed": false, "title": "验证停留在登录页" }
          ]
        }
      ]
    }
  ]
}

只需遍历suites和tests数组,统计每个测试用例/套件下assertions中passed和failed的数量即可。

3. 备选方案:监听测试框架事件

如果修改reporter配置无法满足需求,可在测试代码中直接监听断言事件:

  • Mocha:使用runner.on('pass', () => {})和runner.on('fail', () => {})统计每个断言状态,自行维护各测试用例的计数。
  • Cypress:在support/index.js中添加Cypress.on('test:after:run', (test) => {}),test对象中的assertions数组可直接用于统计。

关于Allure和HTML报告的补充

Allure报告默认会展示每个测试用例的断言明细,但需确保开启详细断言追踪:

  • 使用Cypress的Allure插件时,需在配置中设置allure: { attachRequests: true },且测试代码中需用cy.allure()标记断言。
  • 之前未看到统计数据,大概率是测试代码未显式标记断言,或生成报告时未包含原始测试数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:42:14