一文掌握airtest自动化测试工具

之前写过一篇airtest的文章,链接在这里https://blog.51cto.com/xqtesting/2420165

这次是学员的原创文章也是关于airtest的,献给大家,本文最终版权归学员斌宇所有


一、Airtest的简介

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

说明:

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

git地址:

https://github.com/AirtestProject/Airtest


二、关于自动化测试

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

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


一文掌握airtest自动化测试工具


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


一文掌握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窗口会自动识别出真机设备。


一文掌握airtest自动化测试工具



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

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

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


四、简单使用

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


一文掌握airtest自动化测试工具


一文掌握airtest自动化测试工具



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


一文掌握airtest自动化测试工具


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

一文掌握airtest自动化测试工具


则需要进行输入命令

debugmm.qq.com/?forcex5=true

点击后效果如下:

一文掌握airtest自动化测试工具


debugtbs.qq.com

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


一文掌握airtest自动化测试工具



最后可以点击 debugx5.qq.com


一文掌握airtest自动化测试工具


勾选会让你重启微信

总结:

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

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自动化测试工具


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


一文掌握airtest自动化测试工具


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


一文掌握airtest自动化测试工具


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


一文掌握airtest自动化测试工具


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


上一篇:Airtest连接Android真机


下一篇:Airtest-Poco的元素操作