题目:某 Web UI 自动化套件本地跑全绿,接入 Jenkins 后每天约 5% 的用例随机失败,重跑又大概率能过。以下哪些属于合理的原因定位与治理手段?
A. 排查等待策略,把固定 sleep 换成显式等待(等待元素可见/可点击),消除时序抖动
B. 排查用例间数据与登录态互相污染,保证每条用例可独立、可重复执行(前置自建数据 + 后置清理)
C. 配置失败自动重跑 3 次,报告中只统计最终结果,把它作为长期治理方案
D. 排查共享环境的干扰:他人改测试数据、环境中途发布导致版本不一致、并发执行抢占同一账号
E. 先关掉 CI 失败告警,把流水线跑绿再说
难度:中级
题型:笔试(多选)
参考答案/答题要点:
ABD。
- C 是掩盖问题:自动重试只能作为过渡手段,且必须给「已重试通过」的用例打标、建 flaky 清单并限期修,否则不稳定会持续累积。
- E 属于自欺欺人,直接毁掉流水线的可信度。
- 口述补充定位顺序:先看重跑是否稳定复现 → 拉失败用例的截图/HTML/日志 → 看是否集中在某几个用例或某个模块(指向数据依赖)→ 看是否与执行顺序、并发数相关(指向共享状态)→ 最后才怀疑环境。