- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一年后,Airtest 重新起飞
——by 刘欣孙圣翔
一年前,刘欣 圣翔 和博神 一起做出了
Airtest——基于图像识别的移动端自动化测试框架。
一年后,公司的手游项目越来越多,Airtest 借着这个趋势传播很广,我们也从
刚进公司的菜鸟成长了不少。借着云平台整合的机会,回头审视 Airtest ,及其在各个项目
的使用情况,我们发现了许多问题。同时 ,轮岗期间各方思维的交流也形成了强大的战斗力,
产生一些新的思路和成果,这里分以下几部分介绍:
1 Airtest 是什么、怎么用
2 Airtest 的使用情况和遇到的问题
3 新的思路和成果
平台化——Airadb
底层突破——图像识别
专注——性能测试
产品的心——录制客户端
1、 Airtest 是什么、怎么用
与端游相比,手机游戏的测试有以下特点:
操作类型较少:点击、拖拽、确认响应界面等,大量机械操作让人烦躁
产品迭代频繁,需要反复进行测试
手机机型多,兼容性测试带来更多的重复劳动
在这种背景下,我们想到了做手游测试的自动化 ,不仅节省人力,还提高了测试效果。
Airtest 是一个基于图像识别的手游自动化测试框架。利用用户输入的目标图片,在手
机屏幕中识别出目标坐标,再调用 api 完成对手机的操作。响应界面在与用户预设的正确响
应图片进行匹配,判断测试是否通过。并且在运行过程中自动获取性能数据,生成测试报告。
对于一个测试任务,用户只需要:
1. 写一段简单的 python 脚本
2. 截取的操作图标和预设图标
然后运行 python 脚本,就能在 IOS/Android 的各种机型上自动地跑起来。
项目已经申请专利,并开源到 Github :/NetEase/airtest
说明文档看这里:http://netease.github.io/airtest/
详细的介绍请看去年 7 月的沙龙分享:
/evideo/video_course/show?course_id=519
2、 使用情况和遇到的问题
去年六月发布,作为行业内出现较早的手游自动化技术,Airtest 还是很受欢迎的。截
止去年底,公司内就有 16 个手游组在使用 Airtest ,甚至很多新人mini 项目都会用到。这
一年,Airtest 也由圣翔同学在维护,提供了更多功能,比如性能数据收集、自动生成测试
报告
然而如果一切都是那么完美,也就没有这篇文章了。我们在与各个项目组深入沟通之后
发现,Airtest 的使用是不够深入的,并没有像一些端游的自动化工具那样大量定时地跑
起来(比如梦幻服务端每周 300 个脚本,X5 回归40 个模块)。为什么有需求,有工具,却
没有深入使用呢?
问题主要出现在这几个地方:
2.1 环境搭建太复杂
尽管我们提供了详尽的文档,可以一键安装 Pypi 提供的 10 个依赖模块,打包好了其
他需要安装的 9 个 exe。可是其中任意 1 个与用户的 PC 有兼容性问题 ,就跑不起来了。这
还只是 windows 环境搭建,自动测试 IOS 设备需要 Mac OS 的环境,同学们就更加陌生
了。
2.2 截图不方便
python 脚本写起来很简单,但是每次截图需要的操作比较复杂,需要:
手动运行到待测试的界面
电脑获取手机截屏
用泡泡从屏幕中抠出目标图片
重命名图片
添加图片名到代码中
通常完成一个简单的测试脚本,就要不断重复上述操作,也是挺累的
2.3 运行效率有待提高
一般手游点点点就能完成的操作,自动脚本跑起来却很慢。运行每一步操作需要:截
屏-图像识别-点击-等待响应,调试脚本的时候很捉急。
2.4 欠缺稳定的闲置设备
如果要做稳定的回归测试 ,最好的办法就是配置好手机和电脑的环境,定时启动脚本。
这样需要每个组各自准备,而且设备利用率不高。
文档评论(0)