Airtest简介
Airtest是网易游戏开源的一款UI自动化测试项目,目前处于公开测试阶段,该项目分为AirtestIDE、Airtest、Poco、Testlab四个部分,基于python脚本的方式,用于web、windows程序、app自动化测试。
AirtestIDE:跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写脚本;
Airtest:是一个跨平台、基于图像识别的UI自动化测试框架,适用于游戏和App测试,目前支持Windows、Android、IOS平台,原理:利用截图的方式,在已展示出的手机界面中寻找所匹配的图片;
Poco:一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用,原理:类似appium,基于UI控件搜索的自动化测试框架,定位目标控件,然后调用函数方法对目标控件进行操作。
Airtest环境搭建
由于Airtest框架是基于python语言开发,本地需要搭建python相关环境,建议使用python3。
1.Python(2.7或<=3.6)下载地址:https://www.python.org/downloads/
2.AirtestIDE客户端下载:http://airtest.netease.com
3.Airtest框架安装:pip install -U airtest
4.Poco框架安装:pip install pocoui
AirtestIDE的使用教程跟文档:http://airtest.netease.com/docs/cn/index.html
打开 AirtestIDE,下载后解压,双击AirtestIDE.exe即可运行
Airtest IDE 工具介绍
- airtest辅助窗
常用的api如下,将鼠标悬停就可以查看到对应的入参和用法
或者你也可以直接录制脚本,点击右上角录制按钮,然后,就可以在映射的Android模拟器界面上点点点了,在脚本编辑器中会自动生成脚本,然后,点击工具栏上的 “运行”按钮,就可以回放了。这种脚本更适合游戏,因为游戏界面很难定位,图片识别(截图)的方式确实是不错的选择。 - poco辅助窗
poco是通过元素本身的属性来定位元素,常用的API如下:
attr(‘type’):提取指定元素属性为type的值
get_text(): 提取指定元素的文本内容
attr(‘text’): 通过给定的属性名检索ui元素的属性。如果属性不存在,则返回none(属性有visible、text、type、pos、size、name等)
exists():判断指定元素是否在当前屏幕上存在,存在true、不存在false
click(): 点击事件,可使用click(center)、click([0.5,0.5])、focus([0.5,0.5]).click()来点击控件中心位置
rclick():右键点击
double_click():双击操作
long_click():长按操作
swipe:滑动事件,如:swipe([0.2, -0.2], duration=1)以45度角滑动,持续1秒钟
drag:拖拽事件,如:poco(text=‘需要拖动位置’).drag_to(poco(text=‘目标位置’))
focus (local positioning):局部定位,如:poco(‘控件地址’).focus(‘center’).click()点击控件中间位置
wait:等待事件,如:poco(‘控件地址’).wait(2).click() 控件出现就点击,最多等待2秒
并且它同样支持录制,点击右上角第一个的录制按钮。然后,继续在android映射的界面上点点点,在脚本编辑器中会自动生成脚本(在测试过程中会安装两个app,pocoservice和yosemite,其中pocoservice是支撑poco操作的app,yosemite是airtest的输入法,测试时默认使用yosemite输入法,测试之后需要手动修改输入法)。
用poco查看元素属性:点击第一个小锁图标,然后android映射的界面选择元素,点击后,在左侧窗口可以看到该元素的层级关系,在log查看窗中可以查看该元素的属性 - 工具栏
- 脚本编辑器
- logo查看
- 设备窗
App测试
- 连接手机
android手机依赖adb shell作为电脑与手机的链接。首先必须确保adb devices可以连接手机。刷新侧边栏的ADB,查看airtest是否识别到手机,点击connect链接,即可实时查看到手机屏幕状态。
2.文件-》新建脚本-》选择Airtest项目-》命名,在脚本编辑器写脚本或者使用Airtest或者Poco自动录制脚本即可
web测试
框架原理:Airtest-Selenium测试框架是基于Selenium进行二次封装的一款自动化测试框架,支持Chrome、FireFox等主流浏览器。
在AirtestIDE的窗口选项中选择Selenium Window,设置Chrome本地路径
Airtest-Selenium详细API文档:http://airtest.netease.com/docs/cn/8_plugins/2_selenium.html?highlight=web
Airtest-Selenium介绍文档:http://airtest.netease.com/docs/cn/1_quick_start/5_get_started_with_web_test.html?highlight=web
关于Poco更多API请参考源码官方文档,
关于Airtest更多API请参考源码官方文档,可以帮助您快速上手