开发与工程 ✓ Microsoft · 官方 playwrightci-testingtest-resultsduckdbflaky-testsgithub-actions

Playwright CI 测试结果分析

用 SQL 快速定位 Playwright CI 中的失败、波动和慢测试。

FollowSkills 评估 · FSRS-2.0
不推荐
43/ 100 五分制 2.2 / 5
信任安全10 / 25 · 2.0/5

技能明确说明使用本地 DuckDB 汇总测试结果,并给出 GitHub Token 与 artifact 下载命令;但未说明最小权限、用户确认、敏感日志处理、外部网络影响或回滚方式,因此扣分。未发现恶意软件、凭据窃取或破坏性默认行为。

可靠稳定8 / 20 · 2.0/5

命令、表结构、重试聚合逻辑和异常结果语义较清楚,且依赖 @duckdb/node-api 有仓库依据;但未提供失败诊断、网络认证失败处理、数据库缺失或模式变更处理,静态审查也无法证明可运行,因此受限得分。

适用触发8 / 15 · 2.7/5

目标用户、问题类型和测试身份字段定义较明确,覆盖失败率、flaky、慢测试及运行详情;但未充分说明非适用场景、输入校验、触发边界,并依赖 GitHub/npm 等海外服务,对中国大陆网络可达性未说明,故扣分。

规范维护7 / 15 · 2.3/5

文档结构清晰,包含安装、schema、示例查询、结果含义和 artifact 保留期限;但技能没有版本、变更记录、维护责任或独立更新路径,也缺少故障排查和数据安全说明,因此扣分。Apache-2.0 和 Microsoft provenance 可由仓库文件支持。

有效结果6 / 15 · 2.0/5

提供的 SQL 和运行历史生成脚本直接对应 flaky、失败率、慢测试及单次运行追踪任务,边际价值明显;但数据库下载、字段编辑和 artifact 可用性仍需用户处理,且没有静态可验证的实际输出证据,因此未超过静态上限并扣分。

证据核验4 / 10 · 2.0/5

技能引用了具体仓库脚本、reporter、表字段和可复现 SQL,具备一定审计线索;但本次未执行命令,也没有提交的专门测试、CI 结果或独立交叉证据,因此只能给有限分数。

证据充分度: 评估于 2026年7月28日 审查版本 d529911d66f5
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 使用 GITHUB_TOKEN 和 gh API 前应确认令牌权限、网络访问范围及日志不会泄露敏感测试内容。
  • 数据库是近期窗口且按运行数淘汰,artifact 仅保留 7 天;结果可能不完整或无法追溯。
  • 核心下载流程依赖 GitHub、npm 和 gh CLI,需确认中国大陆网络可达性及认证可用性。
  • 缺少数据库缺失、schema 变化、认证失败和查询失败时的明确恢复步骤。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

该技能查询 Playwright CI 测试结果的聚合 DuckDB 数据库。它可以分析跨运行波动、失败率、慢测试,以及按运行、SHA 和 PR 查看结果。数据库按测试重试保存结果,并支持区分最终 verdict 与重试救回的情况。需要先下载或更新本地数据库;完整步骤树、附件和标准输出仍需从近期运行的 blob 报告中获取。

通过 Playwright 仓库提供的 CLI 下载或更新测试结果数据库;使用 Node.js 和 @duckdb/node-api 执行 SQL;读取 test_results 表中的运行、项目、测试标题、状态、重试、耗时、错误、标签和注释;按项目、文件和测试标题聚合结果;生成失败率、跨运行波动和标签筛选结果;为指定测试生成带 GitHub Actions 运行链接的 emoji 历史;必要时通过 GitHub CLI 查找并下载对应的 blob 报告。

  1. Playwright 维护者想找出在多个 CI 运行中时好时坏的测试。
  2. 测试工程师想按浏览器项目或测试名称统计失败率。
  3. CI 排障人员想定位耗时较长的测试及其错误信息。
  4. 代码审查者想查看某个测试按运行顺序排列的通过、重试救回和失败历史。
  5. 维护者需要从近期 GitHub Actions 运行中获取完整步骤树、附件或标准输出。

这个 Skill 有哪些优点和局限?

优点
  • 直接查询聚合结果,不必逐个查找 GitHub artifact。
  • 支持跨运行波动、单次运行重试救回、失败率和慢测试分析。
  • 明确记录浏览器项目、CI bot、运行身份、SHA、PR、错误和耗时。
  • 可生成链接到精确 GitHub Actions 重跑尝试的紧凑历史。
局限
  • 数据库只保留近期运行窗口,旧运行会按运行数量淘汰。
  • 最新快照可能不包含最新运行,需要本地 update。
  • 完整步骤树、附件和标准输出不在摘要数据库中。
  • blob 和 parquet artifact 仅保留 7 天,完整详情获取受时间限制。
  • 源材料未提供该技能独立安装或自动化测试说明。

如何安装这个 Skill?

源材料没有说明该技能的独立安装流程。技能位于仓库的 .claude/skills/playwright-test-results/SKILL.md;README 说明可运行 playwright-cli install --skills 安装技能集合。使用数据库功能前,在仓库根目录首次运行 npm ci。

如何使用这个 Skill?

先设置 GitHub CLI 凭据并下载数据库:GITHUB_TOKEN=$(gh auth token) node utils/test-results-db/cli.ts download。需要补充最近三天的数据时运行 GITHUB_TOKEN=$(gh auth token) node utils/test-results-db/cli.ts update --lookback-days 3。然后用 Node.js 通过 @duckdb/node-api 执行 SQL 查询 test_results。示例触发请求:查找最近数据库中跨运行最不稳定的 Playwright 测试,并排除 expected_status 不为 passed 的测试。

这个 Skill 与同类方案有什么区别?

相较于手动浏览 GitHub Actions artifact,该技能把测试结果聚合到 DuckDB 中并提供 SQL 查询;但手动下载近期 blob 报告仍是获取完整步骤树、附件和标准输出的方式。

常见问题

这个技能需要什么权限?
下载和更新数据库需要 GitHub CLI 凭据,命令通过 GITHUB_TOKEN=$(gh auth token) 使用该凭据。
它能识别真正的失败吗?
可以。查询失败或波动时应筛选 expected_status = 'passed',以排除预期失败的 test.fail() 测试。
数据库中的每一行代表什么?
每行代表一次测试结果,包括重试;同一测试应按 project_name、file 和 test_title 识别,并按 run_id 与 run_attempt 聚合运行。
它适合查看完整失败详情吗?
不完全适合。数据库保存每次结果的摘要;完整步骤树、附件和标准输出需要下载对应的近期 blob 报告。

同仓库的其他 Skills

均来自 microsoft/playwright

相关 Skills