Airtest调研ing
Airtest调研ing
一,关于自动化测试
概念:自动化测试,就是把繁杂的人工测试用例利用自动化测试工具编写成代码,让机器代替人工自动跑用例的过程。实际上就是把以人为驱动的测试行为转化为机器执行的一种过程。
意义:节省人力、物力、时间、硬件资源等,提升测试效率,特别对于繁琐重复的测试用例,可以使测试人员更专注于新的测试模块的建立和开发,从而提高测试覆盖率。
二,关于Airtest
简述:2018年3月,在全球的游戏开发者大会(GDC)上,网易游戏和Google一起发布了开源项目,网易游戏自研的自动化测试框架——Airtest-Project。
Airtest-Project一开始提供了安卓上的两个跨引擎的自动化测试框架,airtest和poco,解决了市面上绝大多数移动游戏的安卓测试问题。
立刻获得了很好的反响,并获得了一大批稳定的用户。随后,Airtest-Project迅速扩张了自己的业务范围,在ios和web的自动化测试包括微信小程序都取得了突破。
可以说,Airtest-Project在国内的自动化测试中已经是独树一帜的地位。这篇文章我来介绍一下,Airteste-Project是如何进行自动化测试的。
特点:
- 基于图像识别的 Airtest 框架,适用于所有Android、ios和Windows应用
- 基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android、ios App
- 还能直接使用python语法
三,调研
详情见wiki:App自动化选型方案
四,Airtest演示
1,基础用法演示
a,设备连接:adb devices【USB、远程连接(adb tcpip)】
b,图像识别框架
c,pocoUI控件搜索框架
d,基础方法
2,高级用法
a,多设备并行与聚合报告生成
a1:多机器协作:>airtest run untitled.air --device Android:///serialno1 --device Android:///serialno2 --device Android:///serialno1
a2,批量执行脚本:通过命令行运行手机的方式来实现批量多机运行脚本【在本地Python环境下运行,避免使用AirtestIDE来运行脚本】
五、断言和报告,以及持续集成
1,断言:
第一种断言方式:验证UI界面
a、assert_exists:存在
b、assert_not_exists:不存在
断言第二种方式:验证数值
a,assert_equal:断言相等
b,assert_not_equal:断言不等
2,生成测试报告
a,Ctr+L【Airtest IED中】
b, python中用命令行运行
b1,python中用命令行运行 .air 脚本
b2,运行自动化
3,持续集成【调研中】
Airtest 只支持一台mac 连接一台iPhone, 以下方法是以“一台mac 连接一台iPhone”为基础,依托jenkins 统一管理多台iPhone。
方向:
1,技术工具:airtest+python+pytest+htmltestrunner+Jenkins
2,方案:
https://www.cnblogs.com/zhang-dan/p/11018520.html
https://blog.****.net/Mickey220521/article/details/82762312
App自动化框架定型会议结果
经会议沟通,目前满足业务端需求框架为Appium和Airtest,确定Airtest为最终方案,理由如下:
1,Airtest上手快,定位元素丰富,断言准确,输出结果清晰,稳定性较好;
2,自动化调研整体结果,满足现有业务端需求,结合python也具有一定扩展性;
待完善点和问题
1,持续集成问题
2,STF--移动端设备管理【优先级低】
a,https://www.ctolib.com/stf.html
b,https://cloud.tencent.com/developer/article/1006539
3,性能监控
a,发起端:持续一个小时,输出当前性能报告,cpu,内存,netstat,电池温度【优先级高】
4,部分机型无法解决手机常亮问题
5,安装包,一定自己安装在设备中,通过脚本安装,权限获取问题,会导致稳定差,部分脚本无法运行;