1、Airtest工具的介绍
-
Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架用的是图形脚本语言Sikuli。Sikuli这个框架的原理是:计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成程序。
- 另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。
2、工具的优缺点
优点:
- 框架基于图像识别。控件识别,操作简单
- 对代码能力要求不高,可直接录制脚本并一键生成报告
- 支持python进行个性化脚本编程
- 支持android、ios、windows和unity
缺点:
- 稳定性差,控件定位不太准确,如果控件位置变更或控件图案修改,会找不到控件
3、环境搭建
AirtestIDE内置了Python3.6.5,airtest和poco环境,本地无需安装python环境就能 直接使用
- AirtestIDE的官方文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html
- 利用Airtest的API,可拓展更高级的功能
先下载airtest的python第三方依赖库
$brew install python3.6.4 #下载python3 $pip install Airtest #下载Airtest python第三方依赖库 $pip install poco #下载Airtest提供的Android app ui测试库pocoui $brew cask install android-sdk #安装Android-sdk
然后就可以用python编辑器如pycharm进行写脚本了:
4、设备连接
- 1、手机打开开发者模式后,进入到开发者模式里,选上【启动USB Debug模式】
- 2、使用数据线连接手机和PC
在界面上就能查看到设备号,点击connect 就可以了
连接成功会出现:
5、AirtestIDE的应用-两种模式
5.1 Airtest框架基于图像识别
脚本录制:选择airtest辅助窗,点击 目标 按钮后,在设备画面上按下鼠标左键进行截图框选,抬起鼠标左键完成框选。对应操作语句会自动插入编辑器脚本中。
Airtest中的常用API包括设备连接管理设备连接管理、设备操作、`断言`等三类API
在AirtestIDE的Airtest录制辅助窗内,包含有三种类型的录制按钮:
5.2 Poco框架基于UI控件搜索
脚本录制:选择poco辅助窗,直接操作目标APP,就能自动生成脚本,如下图。
AirtestIDE提供的Poco录制功能分为两种:单步录制、伴随操作自动录制。
Poco初始化代码必须放在poco语句之前:
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
退出录制方式:再次点击自动录制按钮 / 或者 右键菜单-"Poco Mode"-"Normal"
6、校验
assert_exists(Template("my.png"))#校验图片
assert_not_exist()
assert_equal()
assert_not_equal()
其他有待研究
7、使用命令行运行脚本
详细步骤见http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/4_run_script/run_script.html