Airtest 是一款由网易开源的 跨平台UI自动化测试框架,专注于为游戏和移动应用提供 图像识别脚本化测试 能力。它支持 Android、iOS、WindowsUnity/Unreal/Cocos2dx 游戏引擎,尤其适合 非代码依赖型 的测试场景(如测试人员通过截图编写脚本)。


Airtest 的核心特点

1. 基于图像识别的测试

  • 通过 截图比对 定位元素,无需依赖控件层级(适合游戏或动态UI)。
  • 支持 模板匹配OCR文字识别(结合 Poco 使用)。
  • 示例:
    touch(Template("button.png"))  # 点击图片中的按钮
    

2. 跨平台支持

平台 支持情况
Android 通过 ADBAirtestIDE 连接
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 的适用场景

  1. 游戏测试
    • 测试 Unity/Unreal 游戏的 UI 和交互(图像识别不依赖控件树)。
  2. 移动应用测试
    • 测试 Android/iOS 应用,尤其是动态内容(如直播、短视频滑动)。
  3. 快速原型验证
    • 通过截图快速编写测试脚本,无需开发深度参与。
  4. 兼容性测试
    • 在多设备上验证渲染一致性(通过图像比对)。

Airtest 的工作原理

  1. 设备连接
    • Android:通过 ADB 连接设备。
    • iOS:通过 WebDriverAgent 代理。
    • Windows:直接调用系统 API。
  2. 图像识别
    • 使用 OpenCV 进行模板匹配,查找屏幕中的目标元素。
  3. 操作模拟
    • 调用底层输入事件(如 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 在 快速迭代非代码测试 场景中表现优异,而复杂业务逻辑测试可能需要结合 PocoAppium

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐