Airtest基于图像识别的⾃动化测试⼯具
⼀、Airtest project简介
  Airtest project 是⽹易⾃研的⼀套解决游戏⾃动化测试的解决⽅案,在2018年 google 开发者⼤会上受到⾕歌极⼒推荐。这套解决⽅案包含 Airtest、Poco、AirtestIDE、AirLab 四个部分。 ⽀持 android、ios、windows、⼩程序上测试各类游戏和应⽤,使⽤ python 编写⾃动化脚本。
Airtest框架 基于图像识别的跨平台⾃动化测试框架,受到MIT研究院 Sikuli 成果的启发,Sikuli 是⼀种图形脚本语⾔。他们构思了⼀种全新的ui测试模式,基于图像⽽不是控件对象的测试⽅式。
Poco框架 基于控件识别⾃动化测试框架,使⽤起来类似 appium,结合AirtestIDE使⽤⾮常⽅便定位控件,能⽐ appium 节省很多时间。
AirtestIDE ⽹易⾃研的IDE,内置 Airtest 和 Poco 框架,adb ⼯具等。AirtestIDE分为免费版和企业版,免费版功能有阉割,如果不去买⽹易的服务,⽇常写脚本测试也是完全OK的。
AirLab 基于Airtest 的真机⾃动化云测平台,需要付费购买,这个就不说了。
⼆、Airtest框架
AirtestIDE 写脚本很简单,基本都是点点点,再分装⼀些通⽤⽅法就可以了。
1.下载 AirtestIDE 解压后,打开 AirtestIDE.exe。打开⼿机 USB 调试模式,⽤ usb 连接电脑,IDE上会出现⼿机设备,点击 connect 。
2.连接上⼿机如下图,以 携程APP为例。
3.然后开始录制脚本,使⽤左侧 Airtest 辅助窗中的事件录制并⽣成代码。下⾯除了定义⼀个⽅法其他是直接点点⽣成的代码,很简洁。
三、Poco框架
1.Poco 辅助窗选择类型,我⽤的 android ⼿机,所以这⾥选择 android 。
2.我们录制⼀个和上⾯流程⼀样的脚本,Airtest 和 Poco 可以混⽤。
3.AirtestIDE 提供了测试报告功能,报告长相如下:
四、总结
  Airtest project 这套解决⽅案极⼤提升了UI⾃动化测试的效率。基于图像识别的 Airtest 框架可跨平台使⽤,也就是说如果 ios 和 android的UI⼀样,那么⼀套脚本即可实现在两个平台跑,当然这是⼀个理想化的过程,实际还得考虑图像识别精准度的问题。不管怎么样,⽹易将这⼀成果⼤部分开源贡献出来,就显得⾮常有诚意,解决了部分测试过程中的痛点,降低了⾃动化测试的门槛。⽬前业界还有基于OCR的AI识别,纯⾃然语⾔的⾃动化解决⽅案,不过不是开源的,要收费还挺贵,哈哈!