一、Airtest的简介

对于测试人员而言。小程序测试一定要在上线后关注并验证。小编所在项目现已完成手APP/微信小程序渠道的UI自动化测试和监控的建设。以下说明如何使用airtest实现小程序的渠道监控。

说明:

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。小编就是基于它做了二次开发实现的自动化测试和监控告警的功能。

git地址:

https://github.com/AirtestProject/Airtest

 

二、关于自动化测试

意义:节省人力、物力、时间、硬件资源等,提升测试效率,特别对于繁琐重复的测试用例,可以使测试人员更专注于新的测试模块的建立和开发,从而提高测试覆盖率。

市面上常见的UI自动化测试工具以及优缺点:

 

airtest很卡 airtest软件_接口测试

 

相较于以上工具来说,Airtest有以下优点和缺点:

 

airtest很卡 airtest软件_airtest很卡_02

 

 

 

不同的手机,可能会略有不同。核心都是要打开手机的开发者模式,打开USB调试。

Airtest通过adb连接你的设备到电脑,再接入Airtest框架以完成录制和脚本运行。

Airtest框架调用的adb路径为:{Airtest安装路径}airtestcoreandroidstaticadbwindows

在使用AirtestIDE连接设备之前,先通过adb devices命令确认设备已经连接。

当真机能够成功接入时,在device窗口会自动识别出真机设备。

 

airtest很卡 airtest软件_自动化测试_03

 

 

连接模拟器时,可以在远程设备连接选项中连接模拟器的设备连接代码,也可以通过adb连接完成之后识别。

注意:需要勾选Use javacap选项可参考官方文档:

http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html

 

四、简单使用

按照官方文档进行即可。主要用到的功能是录制、touch、sleep、assert_exists等功能。

 

airtest很卡 airtest软件_接口测试_04

 

airtest很卡 airtest软件_大话软件测试_05

 

 

五、小程序自动化环境配置

 

airtest很卡 airtest软件_大话软件测试_06

 

一般输入debugx5.qq.com 可打开调试功能。但如果出现下面的问题:

airtest很卡 airtest软件_测试帮日记_07

 

则需要进行输入命令

debugmm.qq.com/?forcex5=true

点击后效果如下:

airtest很卡 airtest软件_airtest很卡_08

 

debugtbs.qq.com

点击后效果如下: 注意 “内核未被禁用”的选项是打开状态

 

airtest很卡 airtest软件_airtest很卡_09

 

 

最后可以点击 debugx5.qq.com

 

airtest很卡 airtest软件_自动化测试_10

 

勾选会让你重启微信

总结:

如果突然发现无法识别小程序中的元素,把上面的命令重来一遍:

debugmm.qq.com/?forcex5=true

debugtbs.qq.com

debugx5.qq.com

 

六、Python运行air脚本

Airtest脚本基于python语言,官方推荐使用python运行脚本

安装部署python环境

推荐安装python3.5以上版本,并配置环境

Python必备库安装

pip install airtest

pip install pocoui

然后再下载一个Python的编辑器来编辑代码,个人推荐使用的是pycharm。接下来就是使用官方提供的启动demo

代码:


from airtest.core.api import * # 通过ADB连接本地Android设备 connect_device("Android:///") #安装待测软件apk,路径信息。 install("path/to/your/apk") #开始运行appstart_app("com.pingan.certicationApp") #点击某个图片,Airtest中基于图像识别语法,图片自己提供。 touch(Template("image_of_a_button.png")) #滑动语音,开头图片跟结尾图片 swipe(Template("slide_start.png"), Template("slide_end.png")) #添加断言的图片 assert_exists(Template("success.png")) #点击Android上的返回键 #keyevent("BACK") #点击Android上的Home键返回 #home() #uninstall("package_name_of_your_apk")


 

七、框架代码详解

脚本如下:

实现了多case同时运行生成聚合报告

不同设备运行同一脚本

 

airtest很卡 airtest软件_大话软件测试_11

 

AllReportStartCMD.py文件既是通过python执行cmd命令

 

airtest很卡 airtest软件_自动化测试_12

 

运行该文件 AllReportStartCMD.py后,得到报告:

 

airtest很卡 airtest软件_接口测试_13

 

至于怎么与jenkins集成,就很简单了,把这个AllReportStartCMD.py文件写到jenkins任务里即可

 

airtest很卡 airtest软件_接口测试_14

 

之后进行构建就可以看到结果啦