Playwright CI 测试结果分析
用 SQL 快速定位 Playwright CI 中的失败、波动和慢测试。
技能明确说明使用本地 DuckDB 汇总测试结果,并给出 GitHub Token 与 artifact 下载命令;但未说明最小权限、用户确认、敏感日志处理、外部网络影响或回滚方式,因此扣分。未发现恶意软件、凭据窃取或破坏性默认行为。
命令、表结构、重试聚合逻辑和异常结果语义较清楚,且依赖 @duckdb/node-api 有仓库依据;但未提供失败诊断、网络认证失败处理、数据库缺失或模式变更处理,静态审查也无法证明可运行,因此受限得分。
目标用户、问题类型和测试身份字段定义较明确,覆盖失败率、flaky、慢测试及运行详情;但未充分说明非适用场景、输入校验、触发边界,并依赖 GitHub/npm 等海外服务,对中国大陆网络可达性未说明,故扣分。
文档结构清晰,包含安装、schema、示例查询、结果含义和 artifact 保留期限;但技能没有版本、变更记录、维护责任或独立更新路径,也缺少故障排查和数据安全说明,因此扣分。Apache-2.0 和 Microsoft provenance 可由仓库文件支持。
提供的 SQL 和运行历史生成脚本直接对应 flaky、失败率、慢测试及单次运行追踪任务,边际价值明显;但数据库下载、字段编辑和 artifact 可用性仍需用户处理,且没有静态可验证的实际输出证据,因此未超过静态上限并扣分。
技能引用了具体仓库脚本、reporter、表字段和可复现 SQL,具备一定审计线索;但本次未执行命令,也没有提交的专门测试、CI 结果或独立交叉证据,因此只能给有限分数。
- 使用 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 报告。
- Playwright 维护者想找出在多个 CI 运行中时好时坏的测试。
- 测试工程师想按浏览器项目或测试名称统计失败率。
- CI 排障人员想定位耗时较长的测试及其错误信息。
- 代码审查者想查看某个测试按运行顺序排列的通过、重试救回和失败历史。
- 维护者需要从近期 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 报告仍是获取完整步骤树、附件和标准输出的方式。