Airtest自动化工具总结

1、介绍:Airtest Project是网易出品的一款自动化解决方案,它适用于任意游戏引擎和应用的自动化测试,支持Android和Windows。它不需要依赖被测对象的源码。

 

Airtest Project提供了一个自动化测试编辑器Airtest IDE,Airtest IDE使用了基于图像识别的UI自动化测试框架—Airtest来进行控件定位,十分有效降低了自动化门槛,真正使自动化测试带来测试效率的提升;

它同时集成了POCO框架,POCO框架是基于控件识别的UI自动化框架,支持主流游戏引擎:Cocos2d-x, Unity3d,支持Android原生应用。因此可以选择是用图像识别或者基于控件定位的方式来进行控件定位。

 

2、安装:只需要下载解压即可使用。无限制条件,开源软件,网易团队开发在谷歌大会2018年3月26号发布。谷歌表示它是目前安卓游戏最强大最全面的一套测试方案,也支持Android、ios、web、Windows桌面应用的测试

 

3、Airtest能做什么:游戏测试、APP测试、Web测试、Win应用测试

官方下载地址:http://airtest.netease.com/

说明文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html(中英两种版本都有,建议都看看)

API文档:http://airtest.readthedocs.io/en/latest/

Github源码:http://github.com/AirtestProject

 

4、配置:

(1)、只支持的浏览器:chrome,注意Chromedriver对应的的chrome版本

(2)、Chromedriver驱动,自带2.37版本的,支持大部分64版本以上的chrome浏览器(64-67最佳,其他版本可能会有时候报错)

(3)、可到历史版本中查看Chromedriver对应的浏览器版本,根据自身安装的chrome版本,找到合适的Chromedriver版本替换自带的Chromedriver

Android 自动化目的 安卓自动化神器_Android 自动化目的

5、Airtest原理

 

Android 自动化目的 安卓自动化神器_控件_02

一般在反复测试的过程中,使用自动化来代替手工测试。

6、Airtest功能介绍

 

Android 自动化目的 安卓自动化神器_chrome_03

7、(1)实例:腾讯课堂寻找roy老师

 

Android 自动化目的 安卓自动化神器_Android 自动化目的_04

(2)、文件上传操作

 

Android 自动化目的 安卓自动化神器_控件_05

 

Android 自动化目的 安卓自动化神器_chrome_06

(3)、绕过验证码操作

 

Android 自动化目的 安卓自动化神器_控件_07

 

Android 自动化目的 安卓自动化神器_Android 自动化目的_08

 

Android 自动化目的 安卓自动化神器_控件_09

(4)、脚本运行方式

Android 自动化目的 安卓自动化神器_chrome_10

 

Android 自动化目的 安卓自动化神器_Android 自动化目的_11

 

Android 自动化目的 安卓自动化神器_html_12

(5)命令执行脚本,并生成html测试报告

-----说明:如果是airtestIDE执行,他是自动生成了html报告。

脚本执行准备工作:到airtest安装文件中复制两个东西到python35的根目录下:

1、airtest_selenium

2、chromedriver.exe(airtest默认2.37版本)

 

Android 自动化目的 安卓自动化神器_chrome_13

打开cmd粘贴如下命令,回车运行脚本:

python -m airtest run D:\anzhuangtool\sometool\AirtestIDE_2019-04-16_py3_win64\AirtestIDE_2019-05-09_py3_win64\test08152042.air --log C:\AirtestIDElog\testlog

--log C:\AirtestIDElog\testlog2

AirtestIDE运行结果复制,直接cmd粘贴运行,既可以自动运行脚本:

"D:\anzhuangtool\sometool\AirtestIDE_2019-04-16_py3_win64\AirtestIDE_2019-05-09_py3_win64\AirtestIDE" runner "D:\anzhuangtool\sometool\AirtestIDE_2019-04-16_py3_win64\AirtestIDE_2019-05-09_py3_win64\test08152042.air"  --log "C:/AirtestIDElog\4e3b699fec7445de54b17edc90b33e73"

 

生成测试报告:

 

Android 自动化目的 安卓自动化神器_控件_14

打开cmd粘贴如下命令,回车,输出报告:

Airtest report + 脚本文件路径 + --log_root + 日志保存路径 + --outfile + 生成命名为xxx.html的报告路径 + --lang zh --plugins airtest_selenium.report

Airtest report D:\anzhuangtool\sometool\AirtestIDE_2019-04-16_py3_win64\AirtestIDE_2019-05-09_py3_win64\test08152042.air  --log_root C:\AirtestIDElog\testlog --outfile C:\AirtestIDElog\testlog\log.html --lang zh --plugins airtest_selenium.report

8、定时执行脚本

 

9、王者荣耀测试

Ⅰ)、Airtest通过adb完成手机连接到电脑并且操作的过程

Ⅱ)、adb连接真机时:

(1)、需要安装手机对应的驱动,确保手机可以被电脑识别---即数据线可以成功连接电脑

(2)、打开手机的开发者选项,usb调试模式,打开指针(光标所到处可以看到坐标)

(3)、有些手机连接上时,会弹出RSA密钥验证,请点击允许。

(4)、cmd下:

D:\anzhuangtool\sometool\AirtestIDE_2019-04-16_py3_win64\AirtestIDE_2019-05-09_py3_win64\airtest\core\android\static\adb\windows    目录中:adb devices验证手机已经连接到电脑。

 

Android 自动化目的 安卓自动化神器_控件_15

--说明:用模拟器连接比较麻烦一点。

(5)、adb连接时,如果出现unauthorized,则需要允许RSA密钥,如果出现offline,可能需要在电脑的用户目录下的Android目录中,编辑adb_usb.ini文件,添加“0x+硬件设备的ID”

Ⅲ)、airtest连接上设备时,会安装一个Yosemite的输入法工具,用于输入文字。

Ⅳ)、启动app时,可以通过start_app函数来完成,参数为app的包名。

Ⅴ)、连接模拟器时,需要勾选connect的use javacap和ad

 

显示手机界面操作

 

Android 自动化目的 安卓自动化神器_chrome_16

开始自动化打开王者荣耀,脚本如下,个人并没有全部完成游戏,想要玩的继续写脚本即可:

 

Android 自动化目的 安卓自动化神器_Android 自动化目的_17

Android 自动化目的 安卓自动化神器_Android 自动化目的_18

Android 自动化目的 安卓自动化神器_html_19

Android 自动化目的 安卓自动化神器_控件_20

Android 自动化目的 安卓自动化神器_chrome_21

Android 自动化目的 安卓自动化神器_控件_22

Android 自动化目的 安卓自动化神器_html_23

Android 自动化目的 安卓自动化神器_chrome_24

Android 自动化目的 安卓自动化神器_控件_25