一种新的自动化 UI 测试解决方案 Airtest Project
今天分享一个自动化UI测试工具airtest——一款网易出品的基于图像识别面向游UI测试的工具,也支持原生Android App基于元素识别的UI自动化测试。主要包含了三部分:Airtest IDE、Airtest(用截图写脚本)和 Poco(用界面UI元素来写脚本)。
来自google的评价:
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拓展更多的高级功能,请安装如下库
Airtest

Poco

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

1.2我们正常连接我们的手机,打开USB调试,点击connect连接即可。如果连接失败,可刷新ADB或重启ADB。连接过程中会向手机安装RotationWatcher、PocoService等组件,同意安装即可。如果连接不正常,请查看是否是不支持该手机http://airtest.netease.com/

1.3连接成功后,画面展示如下,可以看出手机画面是实时投影在IDE上的,能在左边实时查看UI渲染树层级,获取各类控件元素的属性

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

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

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

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

好了,Airtest的分享简单介绍到这里。
一种新的自动化 UI 测试解决方案 Airtest Project的更多相关文章
- angular单元测试与自动化UI测试实践
关于本文:介绍通过karma与jsmine框架对angular开发的应用程序进行单元与E2E测试. angular单元测试与集成测试实践 先决条件 创建项目 webstorm中创建空白web项目 创建 ...
- selenide 自动化UI测试中Configuration全局配置项目
selenide 在测试过程中需要设置许多的默认值,方便在测试过程中进行和很好的使用.下面我们在selenide中的api引用过来看看! static Configuration.AssertionM ...
- Chrome-headless 模式,没有UI界面的自动化UI测试
如果在本机执行UI自动化脚本,打开的浏览器总是会不同程度的影响你做别的事情,那么我们可以采用 无界面运行我们的UI自动化,这种模式下运行脚本并不会真正地打开浏览器,整个过程都是在后台执行的.爽歪歪. ...
- 云真机兼容性自动化工具测试解决方案_www.alltesting.cn
问题和背景 不同类型的品牌和硬件环境.不同版本的android操作系统.IO操作系统,以及不同的分辨率,造成相同的APP在不同的设备可能存在缺陷. 兼容性测试,就是让APP.小程序.H5程序,在所有的 ...
- 【终极答案】搭建selenium3.11 +Firefox+python3.6自动化UI测试环境踩的坑
1 运行之后,出现如下报错 Selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs ...
- 使用uiautomator做UI测试
转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautoma ...
- [转载]使用uiautomator做UI测试
这个只是单纯的mark一下.还没有认真去研究.鉴于最近也不会做手机的自动化测试,所以留作以后参考吧. 转自: http://blog.chengyunfeng.com/?p=504 在Android ...
- [zhuan]使用uiautomator做UI测试
http://blog.chengyunfeng.com/?p=504 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就 ...
- 自动化测试系列(三)|UI测试
UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...
随机推荐
- 【CSS单位】px、em、rem
1.PX为单位 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小,这时 ...
- MyBatis框架(6)动态sql
本次全部学习内容:MyBatisLearning 什么是动态sql: mybatis的核心,对sql进行灵活的操作,通过对表达式的判断,对sql灵活的拼接 在之前小案例的基础上我们先进行简 ...
- Google Map中的瓦片
一.墨卡托投影google map使用的是EPSG:900913标准墨卡托投影(等角圆术地图投影)y = R*ln(tan(pi/4 + a/2))x = R*b当y等于piR时,投影图正好为一个正方 ...
- mac终端terminal快捷键
mac终端terminal快捷键: Command + K 清屏 Command + T 新建标签 Command +W 关闭当前标签页 Command + S 保存终端输出 Command + ...
- idea操作 clone项目、 import项目所有注解全部报错
操作:从现有的git上边clone项目,前提是开发工具,开发环境都一样错误类型:所有的注解全部报错 原因: 是选择了Create from existing source 一路Next下去,Maven ...
- iOS开发学习资源
最近想写点关于iOS开发的总结和心得.虽然网上资源一大堆,质量参差不齐,还是推荐一点干货吧! https://www.objc.io/issues/ 这个网站的文章质量很高,很多干货,可惜今年已经停 ...
- vsCode中误删了文件,教你怎么恢复
不要慌!下面开始帮你找到,很简单!
- 840. Magic Squares In Grid (5月27日)
开头 这是每周比赛中的第一道题,博主试了好几次坑后才勉强做对了,第二道题写的差不多结果去试时结果比赛已经已经结束了(尴尬),所以今天只记录第一道题吧 题目原文 Magic Squares In Gri ...
- redis参数AOF参数的bug
问题:redis 不想开启AOF了.但是还老是出现BGREWRITEAOF .(本redis版本为4.0.6) 涉及持久化参数设置如下: 排查及结果: 该redis以前开启过 AOF ,后来停止AOF ...
- TinyMCE:下载、安装、配置
第一步:下载 官网下载:https://www.tiny.cloud/download/ TinyMCE从4.0开始,不再支持直接下载,而是直接使用提供免费的CDN,让用户免除安装过程,可以在网站中使 ...