检测不稳定测试并追查根因
用 Python 解析 JUnit XML,先按同一提交中既通过又失败的比例筛出不稳定测试,再让 Gemini 分析错误信息并输出根因报告。样本中从 19,644 条结果里标出 12/109 个测试。
- 具体怎么做
- 脚本读取带 commit_sha 和 run_id 的 JUnit XML,按所选周期汇总每个测试在同一提交上的通过/失败情况并写成 JSON。Strands Agents 给 Gemini 2.5 Flash 配置两个工具:读取报告、导出 Markdown 分析;模型再根据错误信息归纳时间、共享状态、顺序或基础设施等可能根因。
- 做到了什么
- 作者在生成的样本数据上解析了 19,644 条测试结果,109 个测试中有 12 个被标记,并生成根因报告。作者说明这只是初筛,基础设施故障也可能被误判成测试抖动。
- 上手要点
- 只在同一提交既通过又失败时标记;当前流程假设使用 GitHub Actions,先复跑再修代码。
你可以这样试
使用 Gemini读取【仓库路径】的测试套件和【CI 日志/JUnit XML 路径】。按 commit_sha 与 run_id 汇总最近【时间范围】的结果,找出同一提交中时过时不过的测试;把每个可疑测试重复运行【20】次确认。输出按影响排序的清单、失败样例、可能根因和建议修复;先不要修改代码。