文章目录
1 airtest项目背景
Airtest Project是一款由网易游戏团队研发并开源的自动化测试框架,诞生的初衷,源于对于游戏自动化测试框架的渴求,随着我们项目的持续开发,我们发现除了在游戏测试上它有着很不错的表现外,还可以很轻松地将它扩展到更多的平台、以及更多引擎上。从一开始我们仅仅使用Android手机来测试游戏,到现在我们可以在Windows、iOS上测试游戏和各类应用,我们看到了这个项目展现出来的巨大潜力和需求,因此我们决定将项目开源出来分享给大家,希望能够有更多人来一起使用和完善这个项目。
2 airtest简介
从 Airtest 官网上可以看到,Airtest Project 主要包含了三部分:Airtest IDE、Airtest 和 Poco。其中,Airtest IDE 是 GUI 工具,Airtest 和 Poco 是两个底层自动化测试框架。airtest可应用于游戏和 App 的多项测试功能。目前该工具已经应用于网易内部《梦幻西游》手游、《荒野行动》、《阴阳师》等数十个游戏项目中。
- 跨平台: Airtest可以在几乎所有平台上执行游戏和App的自动化。
- 一次编写,随处运行: Airtest提供了跨平台的API,囊括了应用安装、模拟输入以及断言等。由于使用图像识别技术来定位UI元素,因此无需嵌入任何代码即可对游戏和应用进行自动化操作。
- 可扩展性: 通过使用Airtest提供的命令行与python API接口,可以很轻松地在大规模设备集群上运行脚本。提供的HTML报告包含了详细操作步骤和截屏,能够迅速定位到失败点。同时,网易也提供了 Airlab 云测试平台服务。
- AirtestIDE: AirtestIDE是一个强大的GUI工具,可以帮助你录制和调试测试脚本。 AirtestIDE提供了完整的自动化工作流程支持:录制脚本->真机回放->生成报告。
3 环境搭建
3.1 下载IDE
从官网下载Airtest IDE,目前客户端支持以下平台:
- Windows(32位、64位)
- MacOS
- Ubuntu
本文档涉及环境搭建的部分都是基于MacOS
安装好,打开IDE,界面视图如下:
3.2 配置本地Python环境
Airtest IDE内置了一个Python环境和airtest库,所以可直接使用。但是如果有更复杂的需求、或需要更灵活的编写脚本的话,则需要把本地的Python运行环境配置到IDE,这样就可以在脚本中使用本地安装的各个功能强大的Python三方库了
IDE工具栏中打开“选项”-“设置”中选中本地解释器保存
解释器配好后,还需要再下载airtest和pocoui两个包。注意目前airtest包里貌似有依赖不支持Python3.8,无法下载,建议本地安装3.8以下版本,如Python3.7亲测有效。
# 安装airtest包
pip3 install airtest
# 安装pocoui包
pip3 install pocoui
装好后在IDE中调试运行的时候踩坑,执行报错permission denied*******/usr/local/lib/python3.7/site-packages/airtest/core/android/static/adb/mac ,解决方法:
# 进入指定目录
cd /usr/local/lib/python3.7/site-packages/airtest/core/android/static/adb/mac
# 修改权限
sudo chmod 777 adb
以上完成后本地Python环境配置到Airtest IDE的工作就完成了
3.3 连接手机
自动化调试看情况连接安卓手机、IOS手机,真机、虚拟机,看手边资源选择。我本地未知原因不能安装Xcode,所以IOS pass,正好有安卓测试机,借来用几天。
①安装adb
brew cask install android-platform-tools
②电脑和手机连接
打开Android手机的USB调试模式,并使用数据线连接电脑
使用adb devices查看已连接上的手机设备
③在IDE中投放连接的手机屏幕镜像
点击【刷新ADB】,在移动设备连接列表中会出现连接的手机,点击connect连接投放镜像
4 IDE功能区介绍
1.菜单栏
2.模拟用户的操作事件&切换poco框架编写区域
3.编写代码以及录制代码生成区域
4.Log查看docker
5.设备连接docker
5 编写脚本
自动化测试主要是针对多型号设备进行测试,每台设备的UI可能因为适配状况,会有不一样,会导致AirTest的成功率不稳定,所以,理论上优先使用POCO进行元素定位,其次才是AirTest进行定位
新手推荐使用“文件”-“新建脚本”-“.air Airtest项目”,进阶可以结合pycharm IDE直接创建.py文件进行编写
5.1 常用方法
基于图像识别的 Airtest 框架,适用于 Android 和 Windows 上的游戏和 APP,且无需开发者在项目代码上的额外支持
airtest常用方法:
# 点击
touch()
# 等待图片出现
wait()
# 滑动
swipe()
上滑:poco.swipe([0.5, 0.5], [0.5, 0.3], duration=2.0)
下滑:poco.swipe([0.5, 0.3], [0.5, 0.5], duration=2.0)
# 元素存在判断
if poco(text="先不用了"