即可成功启动 启动成功后页面如下
什么是Airtest
网易的airtest其实是个测试套件,由Airtest框架、poco框架、airtestIDE 组成。
Airtest框架
基于图像识别的自动化测试框架,是网易自己团队开发的。这个框架核心不在实现方式和技术上,而是
理念!这个框架的祖宗是MIT(麻省理工)研究院的成果 Sikuli ,他们构思了一种全新的UI测试模式,
基于图像识别控件而不是具体内存里的控件对象。理论上除了绿屏外,应该都能很好的识别并测试。
poco框架
网易自家的跨平台UI测试框架,原理类似appium,其实鹅厂也搞了个类似Poco的框架,叫做
GAutomator,但无论是Poco还是GAutomator,他们也有个共同的祖宗,那就是xiaocong大大的
uiautomator for python,让用python调用uiautomator成为可能。
但是,xiaocong的uiautomator只能抓取原生android的控件树,抓不了其他游戏引擎的,所以Poco和
GAutomator就多做了一件事情那就是给各个游戏引擎开发SDK,把控件树数据dump出来然后回传,这
样我们才能够在他们的Inspector工具里看到游戏内的控件树。而这个所谓的SDK本质上就是一个
TCPServer跑在游戏里。
所以poco框架是用于抓取UI控件的
airtestIDE
这个就是完全网易自己家的东西,不开源的。IDE整合了airtest和poco两大框架,内置了Python3.6.5,
本地无需安装python环境就能 直接使用 。提供了 adb工具、poco-inspector(抓ui控件)、设备屏
录、图形化的脚本编辑器、便捷的ui截图工具等等一系列东西。已经很强大了,大大的提高了工作效
率。
总结
Airtest是网易出品的一款基于图像识别和poco控件识别的一款跨平台的UI自动化测试工具。适用于游戏
和App(本质上就是网易自己为了给游戏做自动化测试开发出来的一套框架)。后期又渐渐支持Windows
和Android平台,iOS平台。 Airtest提供了跨平台的API,包括安装应用、模拟输入、断言等。 基于图像
识别技术定位UI元素, 测试脚本运行后可以自动生成详细的HTML测试报告,让你迅速定位失败的测试
点。 AirtestIDE 是一个强大的GUI工具,可以帮助你录制和调试测试脚本。
airtest和appium的区别
uiautomator2,appium, airtest几个工具浅析
https://www.jianshu.com/p/04a1faacc410
airtest优缺点
优点
1.AirtestIDE操作比较简单,基本上不涉及到代码,所以非常适合刚入门没什么测试经验的人利用这个工
具做UI自动化测试,同时Airetest又提供了开源的API,让资深测试工程师可以基于Airtest的框架上再做
高级的定制化扩展功能。
2.基于图像识别和UI控件识别功能简单
3.支持python进行个性化脚本编程
4.可录制脚本一键生成报告
缺点
1.如果经常使用图像识别 脚本会产生大量的图片,会让脚本整体观感不太好(个人意见)。
2.目前相关技术文档不多,需要自己去查看源代码分析或者去官网或社区探索。
1.AirtestIDE操作
1.airtest连接设备
手机开启调试模式 连接电脑 一路允许安装
安装教程
https://airtest.doc.io.netease.com/IDEdocs/device_connection/1_android_phone_connection/
常见问题
1.未开启开发者选项 ,未允许USB调试,开发者选项内 打开禁止权限监控
2.未安装Yosemite及PocoService
https://blog.csdn.net/AirtestProject/article/details/108493205
Yosemite的作用:https://mp.weixin.qq.com/s/LnzToiXFVcfkeOGz8Vz9Pw
3.poco无限重启的解决办法
① 如果开了网络代理的话,需要先 关闭各种代理和VPN ,否则可能会影响到poco通讯
② 检查手机助手内是否对 pocoservice.apk 做了限制,例如在某版本的华为手机中需要开启 允许自
启动 和 允许后台活动
https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/#_6
③ 不能和uiautomator同时启动,否则会相互冲突
④ 可以尝试 重启手机 看看是否会恢复
4.无法在密码框中输入密码
部分厂商(例如华为、VIVO等)的某些型号手机限制了密码框的输入,强制在输入密码时必须使用系统
键盘输入。这样会导致需要输入密码时,直接使用 airtest 的 text() 会无法输入内容,需要把以下选
项打开后才能正常输入密码内容: