Airtest:跨平台 UI 自动化框架,游戏和 App 测试的实用工具
Airtest:跨平台 UI 自动化框架,游戏和 App 测试的实用工具
网易开源的 Airtest 项目在测试圈站稳了脚跟,目前积累了 9,388 个 Star。这个框架解决了一个很具体的问题:让游戏和 App 的 UI 自动化测试变得简单,不用写复杂的平台特定代码。
做移动端测试的人都有过这种经历。Android 要配 adb,iOS 要搞 XCTest,Windows 应用又是另一套方案。每个平台一套工具链,维护起来很累。Airtest 的思路是提供统一的 API,写一次脚本,跑在多个平台上。

图像识别是它的核心武器
Airtest 最大的特点是用图像识别来定位 UI 元素。你不需要知道按钮的 ID 或者 xpath,直接截个图,告诉脚本"点这个"。框架会自动在屏幕上找匹配的区域,然后执行点击、滑动等操作。
这种方式对游戏测试特别友好。游戏界面里的元素往往没有标准的控件属性,传统自动化工具很难定位。图像识别绕过了这个问题,不管是 Unity 还是其他引擎渲染的画面,都能处理。
当然也支持常规的控件操作。通过 Poco 组件,可以直接访问 UI 控件的层次结构,实现更精细的自动化。两种模式可以混用,复杂的场景用 Poco,简单的操作用图像识别。
开箱即用的工具链
Airtest 不只是个 Python 库。它附带 AirtestIDE,一个完整的图形化工具,覆盖了创建、运行、报告的全流程。在 IDE 里可以录制操作、编辑脚本、查看执行结果,对不熟悉代码的测试人员比较友好。
命令行支持也很完善。生成的 .air 项目可以直接用 CLI 执行,方便集成到 CI 流水线里。跑完后生成 HTML 报告,包含详细的执行步骤和屏幕录制,定位失败点很快。
安装就是一行命令:
pip install -U airtest
Mac 和 Linux 用户需要给内置的 adb 加个执行权限,文档里写清楚了步骤,照着做就行。
实际用起来怎么样
脚本的结构很直观。连接设备、安装应用、模拟点击、断言结果,每一步都有对应的 API。下面是一段典型的用法:
from airtest.core.api import *
init_device("Android")
install("path/to/your.apk")
start_app("package.name")
touch(Template("button.png"))
assert_exists(Template("success.png"))
图像匹配的成功率取决于截图质量。纯色背景上的按钮识别很稳,但动态效果多、颜色变化大的界面可能需要多备几张参考图。Poco 模式在支持控件树的应用里会更可靠。

谁适合用这个
如果你在做游戏自动化测试,Airtest 几乎是首选方案。图像识别解决了游戏 UI 定位难的痛点,而且网易自己就是游戏公司,这个工具是从实际业务里长出来的。
App 测试也能用,特别是需要跨 Android 和 iOS 双平台的团队。一套脚本两边跑,维护成本比分开写要低。
对测试人员的技术要求不算高。会基础 Python 就能写脚本,完全不想写代码的可以用 IDE 的录制功能。当然,复杂的逻辑还是需要手动调整。
网易在 Airtest 的基础上还做了 Airlab,一个设备云管理平台。有大规模设备集群需求的团队可以看看这个衍生项目。
总之,Airtest 是个解决实际问题的工具,没有花里胡哨的概念,就是帮你把自动化测试跑起来。9,388 个 Star 说明社区认可度不错,值得测试团队关注。
工具,没有花里胡哨的概念,就是帮你把自动化测试跑起来。9,388 个 Star 说明社区认可度不错,值得测试团队关注。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)