报告

report
分类通用
作者Alireza Rezvani
许可MIT
评分4.60/5
使用12.7K

智能测试报告

生成可无缝集成到用户现有工作流中的测试报告。无需引入新工具。

步骤

1. 运行测试(如果尚未运行)

检查是否存在最近的测试结果:

bash
ls -la test-results/ playwright-report/ 2>/dev/null

如果没有最近的结果,则运行测试:

bash
npx playwright test --reporter=json,html,list 2>&1 | tee test-output.log

2. 解析结果

读取 JSON 报告:

bash
npx playwright test --reporter=json 2> /dev/null

提取以下信息:

  • 测试总数、通过数、失败数、跳过数、不稳定(flaky)数

  • 单项测试时长及总时长

  • 失败的测试名称及其错误信息

  • 不稳定测试(重试后通过)

3. 检测报告发送目的地

检查配置并自动路由:

| 检查项 | 发现结果 | 操作 |
|---|---|---|
| TESTRAIL_URL 环境变量 | 已配置 TestRail | 通过 /pw:testrail push 推送结果 |
| SLACK_WEBHOOK_URL 环境变量 | 已配置 Slack | 将摘要发送至 Slack |
| .github/workflows/ | GitHub Actions | 通过 artifacts 将结果发送至 PR 评论 |
| playwright-report/ | HTML 报告 | 打开或提供报告服务 |
| 以上皆无 | 默认 | 生成 Markdown 报告 |

4. 生成报告

#### Markdown 报告(始终生成)

markdown
# 测试结果 — {{date}}

摘要

  • ✅ 通过: {{passed}}
  • ❌ 失败: {{failed}}
  • ⏭️ 跳过: {{skipped}}
  • 🔄 不稳定: {{flaky}}
  • ⏱️ 时长: {{duration}}

失败测试

| 测试用例 | 错误 | 文件 | |---|---|---| | {{name}} | {{error}} | {{file}}:{{line}} |

不稳定测试

| 测试用例 | 重试次数 | 文件 | |---|---|---| | {{name}} | {{retries}} | {{file}} |

按项目统计

| 浏览器 | 通过 | 失败 | 时长 | |---|---|---|---| | Chromium | X | Y | Zs | | Firefox | X | Y | Zs | | WebKit | X | Y | Zs |

保存至 test-reports/{{date}}-report.md

#### Slack 摘要(如果配置了 Webhook)

bash
curl -X POST "$SLACK_WEBHOOK_URL" \
  -H 'Content-Type: application/json' \
  -d '{
    "text": "🧪 测试结果: ✅ {{passed}} | ❌ {{failed}} | ⏱️ {{duration}}\n{{failed_details}}"
  }'

#### TestRail 推送(如果已配置)

使用 JSON 结果调用 /pw:testrail push

#### HTML 报告

bash
npx playwright show-report

如果在 CI 环境中:

bash
echo "HTML report available at: playwright-report/index.html"

5. 趋势分析(如果存在历史数据)

如果 test-reports/ 中存在之前的报告:

  • 对比通过率随时间的变化

  • 识别近期变得不稳定的测试

  • 区分新出现的失败与重复出现的失败

输出

  • 包含通过/失败/跳过/不稳定计数的摘要
  • 失败测试的详细信息及错误消息
  • 报告发送目的地的确认
  • 趋势对比(如果可用历史数据)
  • 下一步操作建议(修复失败项或庆祝全绿)