1. 自动化测试
自动化测试的目的,就是为了“更快更好”地发现产品问题,有效提升产品质量。目前比较主流的自动化测试包含单元测试自动化、接口自动化和UI自动化。
相比接口自动化测试来说,UI自动化测试的成本要高很多,因为它直面的是终端界面,这个调整可能非常频繁,从而导致UI自动化测试脚本的维护成本增高。
然而,相对于拥有非常多大型游戏项目的网易游戏来说,UI自动化测试也是非常必要的。虽然界面有调整,但是大型项目的周期通常比较长,期间需要对很多功能进行频繁的回归测试,自动化就成了提高测试效率、降低工作成本的有效手段。
2. Airtest项目的发展历程
2014年,市面上还没有非常适用于游戏项目的自动化测试框架,于是,网易自研的AirtestProject就启动了。
AirtestProject主要包含Airtest和Poco两款UI自动化测试框架。在网易内部成功服务了数十个项目组之后,受邀在2018年的GDC大会上与谷歌联合对外发布。项目开源至今,已有数十万名开发者和上千家公司在使用。
3. Airtest项目想解决的痛点
AirtestProject主要想解决UI自动化测试的2个痛点,一个是平台通用性差的问题,另一个是上手门槛高的问题。
平台通用性差 ,是指一些测试框架不适用于所有平台产品的测试,包含Android、iOS和各种游戏引擎等;网易自研的Airtest和Poco都是跨平台的测试框架,Airtest利用图像识别原理可以做到 平台无关 ,Poco支持原生且与 引擎无关 。
上手门槛高 ,是指一些测试框架需要搭建复杂的测试环境,测试人员还需要有一定的代码编程能力,并且阅读非常详细的文档才能够上手。而Airtest和Poco的专用编辑器AirtestIDE 提供脚本录制与回放功能 ,测试人员无需自己写代码也可以一键录制和运行自动化脚本,极大地降低了自动化测试脚本编写的门槛。
4. Airtest项目的详细介绍
Airtest项目主要包含2款自动化测试框架,和一个专用的编辑器AirtestIDE:
1)基于图像识别的Airtest自动化测试框架
基于图像识别原理的Airtest自动化测试框架,脚本所见即所得,常见的点击、滑动、等待出现、断言等操作,都可以通过截图脚本实现,测试小白也可以秒懂。
另外Airtest框架兼容各种环境,并且无需嵌入代码,就可以适用于全平台,能够帮助项目快速实现自动化。
2)基于控件识别的Poco自动化测试框架
基于控件识别原理的Poco自动化测试框架,可以精确识别到界面上的每一个UI控件,准确定位;并且能实时获取控件的详细属性,方便操作对控件进行点击、滑动等操作。
另外,项目界面迭代,对原有Poco脚本的影响非常小,因为页面的上控件改动是比较少的,所以测试人员无需消耗过多精力维护Poco脚本。
3)专用编辑器AirtestIDE
为了降低自动化脚本的编写门槛,我们还开发了Airtest和Poco框架的配套编辑器,可以帮助我们轻松连接各个平台的设备,并且支持一键录制与回放自动化测试脚本:
它提供的主要功能有:
① 连接各种平台的设备
在AirtestIDE的设备连接窗口,支持连接Android、iOS设备和Windows窗口,并且可以实时查看设备画面和操作设备。
② 一键录制与回放脚本
AirtestIDE支持一键录制Airtest和Poco脚本、一键运行脚本(回放)和一键查看测试报告等功能。
③ 简单拖拽就可以完成截图脚本
点击Airtest辅助窗的API快捷功能,即可通过简单的点击、拖拽完成我们的Airtest截图脚本。
④ 实时查看设备的控件树
我们可在Poco辅助窗内查看设备当前的控件树,并且随着我们对设备画面的操作,辅助窗内的控件树也会实时刷新的。目前已经支持查看Android、iOS原生应用的控件树,以及unity、cocos等多种游戏引擎渲染应用的控件树,后续我们还将支持查看Windows和Mac桌面应用的控件树信息。
5. AirtestIDE录制回放功能演示
这里我们使用AirtestIDE连接各个平台的设备来演示一些简单的脚本录制或者简单自动化脚本运行的情况:
1)Android平台
2)iOS平台
3)Windows应用/桌面
4)chrome浏览器(Web)
5)游戏应用(Android)