之前遇到了一个线上问题,大商家反馈说下面有几个导购进入企微工作台点击图标没有反应。和开发一起通过日志排查和手动点击没有复现问题,但商家说多次遇到了,怀疑是概率性的问题。
概率性的问题考虑通过多次点击进行复现,目前已知的场景是点击进入工作台,然后点击图标会出现这个问题,场景比较明确。另外影响的因素可能是环境、设备、端,设备暂时圈定在android,端的话是企微内嵌的工作台,问题来了,目前业务线的自动化主要是浏览器的UI自动化,还没有做过企微以及小程序的自动化。

为了快速实现企微场景的自动化,可以把企微内嵌的工作台理解为app里的功能,所以可以考虑使用app的自动化工具来实现。之前听说过网易开源的airtest工具,初步调研了下,使用该工具有以下优点:

  1. 支持录制的方式运行脚本,比较适合当前点图标的场景,实现成本较低
  2. 支持IDE也支持脚本运行,这样后续可以改造成巡检工具在服务器上运行

使用说明见https://airtest.doc.io.netease.com/,已经写的比较详细了,可以参考着进行配置

配置完成后,拿了一台闲置的测试手机用来作为脚本运行的机器进行脚本的编写

airtest页面滑动 airtest为什么touch没有点击_python

大部分流程只要使用touch(点击图标)、assert_exists(结果判断)就能完成,但要长时间运行,稳定性方面还是需要关注一下:

  1. 有一些页面需要加载的地方,需要结合exists和wait确保页面加载完再执行下一步操作
  2. 善用代码模式,可以编写python代码,实现一些异常处理或者装饰器来包装进入和退出的流程

不到半天配置和编写脚本完就开始运行脚本了,跑了1个多小时,终于复现出问题,然后找开发进行定位修复

这个问题解决后,这个巡检脚本并没有闲置,因为点击是通过图片来识别,对于企微工作台和小程序工作台来说,图片样式基本都是一样的,所以一个脚本可以在两个端都可以运行,只要初始化的地方做一下特殊处理即可,节约了较大的维护成本

airtest页面滑动 airtest为什么touch没有点击_使用说明_02

最后,通过jenkins配置一下脚本的触发和运行,需要关注下命令行脚本的运行方法以及报告的生成参数

airtest页面滑动 airtest为什么touch没有点击_服务器_03