最近我产品的持续集成通过率大幅下降,刚好同事提取数据做了个 dashboard,正好可以用来说明为什么要减少 UI 自动化比例。
先上一张 Greenness 的图,可以看出持续集成的成功率下降很厉害。
顺便提下我的产品:
- 过去是每提交一个 changelist(简称 CL) 就持续集成一次,后来因为资源紧张,改成若干 CLs 跑一次持续集成,
- 持续集成中包含了所有的自动化测试,UT、E2E、API、UI 等等,
- 每周发布选取的截止 CL 是取持续集成中前三个小时跑绿色的,如果持续集成一直红色,那么只能手动选取,这个版本的稳定性也大打折扣
接下来对各种测试进行分离统计,把 UI 的也就是 webdriver 的测试放一块,其他测试放一块。
非 UI 测试失败比例,通过率很高吧,效果还是很满意的
再看看失败原因
再看看惨不忍睹的 UI 自动化吧
失败比例
除了失败还有 Flaky 的比例
失败的原因
最后还是金字塔的图
↙↙↙阅读原文可查看相关链接,并与作者交流