自动报bug?自动验证?这是不是大家的理想?

图片说明

听上去是不是就像这张图一样魔幻?

我们实现了!一部分...

背景介绍:
我们是 BIM 施工图测试团队,线上故障是我们需要关注的重点之一,施工图产品的常见线上故障就是线上方案出图失败,所以我们需要通过监控和自动化手段,及时发现线上出图失败,并对其进行修复,以降低出图失败率,提高用户满意度。这个工作我们一直在做,但是之前一直是人肉在做这个有点繁琐的工作。

那么如果人肉做这件事,到底有多繁琐?需要的步骤如下...

  • 查询Tetris监控异常,整理异常信息(异常去重,异常出现率...)
  • 获取出图失败的方案信息,构造出图 post 请求 body
  • 在beta环境出图验证(因为beta环境可能已经修复了一些问题)
  • 查询Tetris监控,确认是否还存在异常
  • 如果异常还存在,在JIRA提交bug
  • bug修复后,进行出图验证,又要查询监控异常...

总结一下,痛点是:方案多、异常类型冗余、检验修复麻烦、流程机械重复
把整个流程,拆分为以下步骤(如图),然后把全流程自动化起来,提高效能,解放劳动力!

图片说明

下面是工具的界面,只需要输入 Jira Id,然后 泡杯茶,静静等待 忙点其他事情,等结果出来。前端先发一个POST请求,出图,然后get请求轮询测试结果。

返回的结果中,有三部分,
第一部分 Overview 中,有 pass 数量,fail 数量,error(自动化过程中的异常)数量, Pass Rate(通过率);

第二部分 Exception 信息 中,是去重后的Exception信息;

第三部分 详细异常信息 中,是去重后的详细异常信息,有时间,call stack 等详细信息;

图片说明

图片说明

实现这个工具,需要下面这些原料:

  • 使用Sprint Boot框架,定时触发
  • Tetris接口
  • 正则匹配,对比去重
  • Rest-Assured 发送请求
  • JIRA接口
  • 业务逻辑

效果
导致线上出图失败率降低,百分之一 到 万分之五 (而且施工图的出图量比起年初翻了四倍);

更直观的感受,故障台小姐姐的反馈少了~ 2019上半年有4个出图失败相关的线上故障,2019下半年到目前为止,出图失败相关的线上故障数为:零 !

即将来...
我们希望能实现全流程的自动化,我们正在为此努力。

图片说明