最近我产品的持续集成通过率大幅下降,刚好同事提取数据做了个 dashboard,正好可以用来说明为什么要减少 UI 自动化比例。

先上一张 Greenness 的图,可以看出持续集成的成功率下降很厉害。

顺便提下我的产品:

  1. 过去是每提交一个 changelist(简称 CL) 就持续集成一次,后来因为资源紧张,改成若干 CLs 跑一次持续集成,
  2. 持续集成中包含了所有的自动化测试,UT、E2E、API、UI 等等,
  3. 每周发布选取的截止 CL 是取持续集成中前三个小时跑绿色的,如果持续集成一直红色,那么只能手动选取,这个版本的稳定性也大打折扣

接下来对各种测试进行分离统计,把 UI 的也就是 webdriver 的测试放一块,其他测试放一块。

非 UI 测试失败比例,通过率很高吧,效果还是很满意的


再看看失败原因

再看看惨不忍睹的 UI 自动化吧

失败比例

除了失败还有 Flaky 的比例

失败的原因

最后还是金字塔的图


↙↙↙阅读原文可查看相关链接,并与作者交流