用途:在调查间歇性测试失败、评估测试禁用 PR 或审查测试过滤变更时,查询 Chromium 上游 CI 中该测试的历史通过/失败/flaky 数据,判断失败是否属于已知上游 flake。
主要能力:按测试名或子串在 Chromium LUCI Analysis 数据库中搜索匹配的测试 ID,获取回看期内的 flakiness 统计,分析通过/失败/flake 比率,并输出结论与建议。结论分为五类:已知上游 flake(flake 率≥5%,可安全加入过滤文件并注明上游 flakiness)、偶发上游失败(1–5%,可考虑过滤但需记录并可能仍需调查)、上游稳定(<1%,应排查 Brave 特有原因)、数据不足(少于 10 条判定,需人工调查)、未找到(可能为 Brave 特有或 ID 格式不同)。flake 率按 (failed + flaky) / (passed + failed + flaky) 计算,跳过和排除的判定不计入。
使用方式:通过 vpython3 运行脚本,例如 vpython3 ./tools/chromium_tests_analysis/check-upstream-flake.py "WebUIURLLoaderFactoryTest.RangeRequest";可用 --days N 指定回看天数(默认 30,最大 90),用 --json 输出 JSON,也可只传类名搜索该类下所有方法。退出码:0 成功,1 错误(网络/API 等),2 未找到匹配测试 ID。脚本调用 LUCI Analysis REST API(pRPC),查询公开 Chromium 数据无需认证。
适用场景:调查间歇性失败、验证上游 flakiness 声明、PR 审查中评估测试过滤变更、处理涉及 Chromium 测试失败的待办事项。
限制:仅覆盖 Chromium 上游数据,不含 Brave CI;测试 ID 格式可能不匹配;历史数据约 90 天;只统计通过/失败/flake 数量,不比较失败日志,无法区分同一测试的不同失败模式。测试 ID 在 LUCI 中格式为 ninja://{gn_path}:{target}/{TestSuite}.{TestMethod}。