Airtest 是什么
摘要: Airtest 是网易开源的跨平台 UI 自动化测试框架,支持 Android、iOS、Windows 及主流游戏引擎(Unity/Unreal)。其核心优势在于 图像识别测试(通过截图定位元素)和 低代码化(AirtestIDE 可视化脚本生成),尤其适合游戏、动态 UI 及快速验证场景。结合 Poco 框架 可实现控件层级定位,兼顾灵活性与易用性。与 Appium 等工具相比,Airt
·
Airtest 是一款由网易开源的 跨平台UI自动化测试框架,专注于为游戏和移动应用提供 图像识别 和 脚本化测试 能力。它支持 Android、iOS、Windows 和 Unity/Unreal/Cocos2dx 游戏引擎,尤其适合 非代码依赖型 的测试场景(如测试人员通过截图编写脚本)。
Airtest 的核心特点
1. 基于图像识别的测试
- 通过 截图比对 定位元素,无需依赖控件层级(适合游戏或动态UI)。
- 支持 模板匹配、OCR文字识别(结合 Poco 使用)。
- 示例:
touch(Template("button.png")) # 点击图片中的按钮
2. 跨平台支持
| 平台 | 支持情况 |
|---|---|
| Android | 通过 ADB 或 AirtestIDE 连接 |
| iOS | 需搭配 WebDriverAgent |
| Windows | 直接操作桌面应用 |
| 游戏引擎 | Unity/Unreal/Cocos2dx 集成 |
3. 多语言脚本支持
- 主要使用 Python 编写脚本,但提供 AirtestIDE 可视化工具,支持录制和回放。
- 示例脚本:
from airtest.core.api import * start_app("com.example.app") # 启动应用 touch(Template("login_button.png")) # 点击登录按钮 swipe(Template("slide_bar.png"), vector=[-0.2, 0]) # 滑动 assert_exists(Template("welcome_text.png")) # 验证元素存在
4. Poco 框架集成
- Poco 是 Airtest 的姊妹项目,提供 控件层级定位(类似 XPath/UISelector),适合传统 App 测试。
- 示例:
from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco() poco("com.example:id/button").click() # 通过ID定位控件
Airtest 的适用场景
- 游戏测试
- 测试 Unity/Unreal 游戏的 UI 和交互(图像识别不依赖控件树)。
- 移动应用测试
- 测试 Android/iOS 应用,尤其是动态内容(如直播、短视频滑动)。
- 快速原型验证
- 通过截图快速编写测试脚本,无需开发深度参与。
- 兼容性测试
- 在多设备上验证渲染一致性(通过图像比对)。
Airtest 的工作原理
- 设备连接
- Android:通过
ADB连接设备。 - iOS:通过
WebDriverAgent代理。 - Windows:直接调用系统 API。
- Android:通过
- 图像识别
- 使用 OpenCV 进行模板匹配,查找屏幕中的目标元素。
- 操作模拟
- 调用底层输入事件(如
adb shell input或 iOS 的XCUITest)。
- 调用底层输入事件(如
Airtest vs. 其他测试工具
| 特性 | Airtest | Appium | UIAutomator2 |
|---|---|---|---|
| 核心技术 | 图像识别 + Poco控件树 | WebDriver 协议 | Android UiAutomation API |
| 跨平台 | ✅ (Android/iOS/Windows/游戏) | ✅ (Android/iOS/Web) | ❌ (仅 Android) |
| 脚本语言 | Python | 多语言(Python/Java/JS等) | Java |
| 适用场景 | 游戏、动态UI、快速脚本 | 传统 App 自动化 | 系统级 Android 测试 |
| 学习成本 | 低(可视化IDE) | 中(需理解 WebDriver) | 高(需熟悉 Android 控件树) |
快速开始
1. 安装 Airtest
pip install airtest
2. 连接设备(Android 示例)
from airtest.core.api import *
connect_device("Android:///") # 自动查找已连接的设备
3. 录制脚本(使用 AirtestIDE)
- 下载 AirtestIDE,通过可视化界面录制操作并生成 Python 脚本。
4. 运行脚本
airtest run test.air # 运行录制的脚本
优缺点
✅ 优点
- 零代码入门:通过截图即可编写测试用例。
- 游戏测试友好:支持主流游戏引擎。
- 跨平台:一套脚本适配 Android/iOS/Windows。
❌ 缺点
- 图像识别稳定性:受屏幕分辨率、光照影响。
- 性能较低:图像处理比控件定位慢。
- iOS 支持较弱:依赖第三方工具(如 WebDriverAgent)。
总结
- 选 Airtest 如果:
- 测试游戏或动态UI(如短视频滑动)。
- 需要快速原型验证,测试人员不擅长编码。
- 选 Appium/UIAutomator2 如果:
- 测试传统 App,追求稳定性和精确控件定位。
Airtest 在 快速迭代 和 非代码测试 场景中表现优异,而复杂业务逻辑测试可能需要结合 Poco 或 Appium。
更多推荐



所有评论(0)