之前写过一篇airtest的文章,链接在这里https://blog.51cto.com/xqtesting/2420165
创新互联公司主要从事网站设计、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务寻乌,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
这次是学员的原创文章也是关于airtest的,献给大家,本文最终版权归学员斌宇所有
一、Airtest的简介
对于测试人员而言。小程序测试一定要在上线后关注并验证。小编所在项目现已完成手APP/微信小程序渠道的UI自动化测试和监控的建设。以下说明如何使用airtest实现小程序的渠道监控。
说明:
Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。小编就是基于它做了二次开发实现的自动化测试和监控告警的功能。
git地址:
https://github.com/AirtestProject/Airtest
二、关于自动化测试
意义:节省人力、物力、时间、硬件资源等,提升测试效率,特别对于繁琐重复的测试用例,可以使测试人员更专注于新的测试模块的建立和开发,从而提高测试覆盖率。
市面上常见的UI自动化测试工具以及优缺点:
相较于以上工具来说,Airtest有以下优点和缺点:
三、环境的搭建
AirtestIDE已经帮你集成了所有的环境,自带录制脚本栏,自动生成脚本,自带编辑器还自带模拟器,有了一个AirtestIDE就可以轻松简单的录制脚本了。下载地址是Airtest的官网:
http://airtest.netease.com/
AirtestIDE的使用教程跟文档也在下面的连接中:
http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html
1、进入官网:http://airtest.netease.com/,下载airtest,解压,点击exe启动即可。
2、连接手机:
http://airtest.netease.com/docs/cn/2_device_connection/1_android_phone_connection.html
http://airtest.netease.com/docs/cn/2_device_connection/2_android_faq.html
不同的手机,可能会略有不同。核心都是要打开手机的开发者模式,打开USB调试。
Airtest通过adb连接你的设备到电脑,再接入Airtest框架以完成录制和脚本运行。
Airtest框架调用的adb路径为:{Airtest安装路径}airtestcoreandroidstaticadbwindows
在使用AirtestIDE连接设备之前,先通过adb devices命令确认设备已经连接。
当真机能够成功接入时,在device窗口会自动识别出真机设备。
连接模拟器时,可以在远程设备连接选项中连接模拟器的设备连接代码,也可以通过adb连接完成之后识别。
注意:需要勾选Use javacap选项可参考官方文档:
http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html
四、简单使用
按照官方文档进行即可。主要用到的功能是录制、touch、sleep、assert_exists等功能。
五、小程序自动化环境配置
一般输入debugx5.qq.com 可打开调试功能。但如果出现下面的问题:
则需要进行输入命令
debugmm.qq.com/?forcex5=true
点击后效果如下:
debugtbs.qq.com
点击后效果如下: 注意 “内核未被禁用”的选项是打开状态
最后可以点击 debugx5.qq.com
勾选会让你重启微信
总结:
如果突然发现无法识别小程序中的元素,把上面的命令重来一遍:
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同时运行生成聚合报告
不同设备运行同一脚本
AllReportStartCMD.py文件既是通过python执行cmd命令
运行该文件 AllReportStartCMD.py后,得到报告:
至于怎么与jenkins集成,就很简单了,把这个AllReportStartCMD.py文件写到jenkins任务里即可
之后进行构建就可以看到结果啦