一种新的自动化 UI 测试解决方案 Airtest Project

今天分享一个自动化UI测试工具airtest——一款网易出品的基于图像识别面向游UI测试的工具,也支持原生Android App基于元素识别的UI自动化测试。主要包含了三部分:Airtest IDE、Airtest(用截图写脚本)和 Poco(用界面UI元素来写脚本)。html

来自google的评价:python

Airtest 是安卓游戏开发最强大、最全面的自动测试方案之一。
它具有如下几个优点:
1.若是你是个小白,不想进行深度开发只想用做UI自动化测试,那么你彻底能够用AirtestIDE这款IDE经过操做鼠标来生成并录制脚本,一键回放
2.支持在 Windows 和 macOS 上运行。基于图像识别的 Airtest 框架,适用于 Android 和 Windows 上的游戏,此外也支持Android native apps、Windows applications、iOS Support、Selenium Plugin
3.自动生成详细的HTML测试报告,附带了每一个操做步骤的截图,方便迅速定位失败的测试点
4.提供了一种快速进行兼容性测试的方案,利用手机集群进行大规模自动化测试。
5.支持图像识别,可将图片元素做为参数进行校验操做
6.支持二次开发,只须要下载airtest的python第三方依赖库
多说无益,咱们开始尝试使用Airtest进行Android APP测试
环境准备
1.最好使用python2.7以上,建议使用虚拟Pythonvirtualenv环境部署,隔离环境
若是想要利用Airtest的API拓展更多的高级功能,请安装以下库
Airtestios

airtest
Pocoapi

poco
2.若是测试Android app,须要准备adb环境,其依靠依靠ADB与Android设备进行通讯
3.下载airtestIDE. 请在官网下载合适你的IDE版本:http://airtest.netease.com/changelog.html
开始使用
1.设备链接
1.1一切准备稳当后,开始打开AirtestIDE进行使用,图中所示分别是链接Android、Windows application、iosapp

AirtestIDE
1.2咱们正常链接咱们的手机,打开USB调试,点击connect链接便可。若是链接失败,可刷新ADB或重启ADB。链接过程当中会向手机安装RotationWatcher、PocoService等组件,赞成安装便可。若是链接不正常,请查看是不是不支持该手机http://airtest.netease.com/框架

AirtestIDE
1.3链接成功后,画面展现以下,能够看出手机画面是实时投影在IDE上的,能在左边实时查看UI渲染树层级,获取各种控件元素的属性python2.7

AirtestIDE
2.基于图像识别的脚本
2.1首先来看一看官方提供的启动demo工具

AirtestIDE
掌握以上操做,已经能够完成大部分的自动化测试任务了。实际编写中你甚至不用动手写脚本,你只须要鼠标操做录制脚本便可,全部的东西都已经封装好了,能够直接截图做为参数,很是的方便、简单
2.2来看一个实际例子测试

AirtestIDE
用例可使用touch等语句来手动编写,也能够在AirtestIDE中经过点击辅助窗中的各种语句按钮,而后框选按钮来生成语句。
一些经常使用语句:
assert_exists:断言图片存在于当前画面上,验证运行结果是否正确,专属的断言语句
assert_not_exists:断言图片不存在,验证运行结果是否正确,专属的断言语句
touch:当前画面中寻找符合图片内容的坐标并点击,没有找到相符的图片则抛出一个异常
swipe:能够从一个位置滑动到另一个位置
wait:等待画面中某个图片出现
exists:判断画面中是否存在某个图片
text:调用输入法,输入一段文字
sleep: 等待一段时间,确保上一步的操做已经完成
snapshot:当前画面截图
若是你想了解这种基于图像识别的原理或者是进行更多复杂操做,能够去官方查看airtest.core.api,官方提供了详细的说明文档,篇幅有限不作更多说明
3.基于控件识别的poco脚本
3.1直接看一个例子吧google

AirtestIDE
poco的初始化应该放在游戏启动之后再进行,若是是测试游戏,由于poco须要与游戏中的poco-sdk进行通讯,须要等待游戏将poco-sdk初始化完成,才能初始化poco
4.测试报告
airtest提供了很详细的的测试报告,为每个用例的操做步骤都作了截图(sleep不截图),方便咱们定位失败的测试点

AirtestIDE好了,Airtest的分享简单介绍到这里。

相关文章
相关标签/搜索