Python Airtest自动化测试工具:安装、使用与常见问题排查

许南星
许南星
发布时间:2026-10-15| 2人浏览过
原创

本文详细介绍网易开源的Airtest自动化测试框架,涵盖AirtestIDE安装、Poco控件识别及跨平台UI测试功能。重点解析Python 3.8环境下因OpenCV版本限制导致的安装报错及解决方案,并总结连接设备假死、ADB进程残留等常见IDE问题及规避策略,帮助开发者快速上手并稳定运行自动化脚本。

Airtest(全称AirtestProject)是由网易游戏团队开发的一款自动化测试框架,广泛应用于软件测试领域。本文旨在记录该框架的安装流程、具体使用方法以及在实践过程中遇到的典型问题与解决方案。

Airtest官方项目构成介绍

AirtestProject主要由以下组件构成: Airtest:一个跨平台的UI自动化测试框架,基于图像识别技术,适用于游戏和App测试,支持Windows、Android和iOS平台。 Poco:一款基于UI控件识别的自动化测试框架,目前支持Unity3D、cocos2dx-*、Android原生App、iOS原生App及微信小程序,也可在其他引擎中通过接入poco-sdk使用。 AirtestIDE:跨平台的UI自动化测试编辑器,内置Airtest和Poco插件,可快速简便地编写相关测试代码。 AirLab:真机自动化云测试平台,提供TOP100手机兼容性测试及海外云真机兼容性测试等服务,详情可访问官网。

如何快速上手?

Airtest项目基于Python开发,所有测试脚本均为Python代码。建议在使用前掌握Python基础语法。编写自动化脚本时,可配合官方提供的AirtestIDE编辑器以加速开发;同时,由于Airtest和Poco均基于Python,开发者也可使用自己熟悉的Python编辑器进行脚本编写。

一、安装指南

Airtest提供两种安装方式:一是下载并安装AirtestIDE,该IDE内置了Python环境和Airtest库,支持可视化组件选取测试;其缺点在于无法直接使用用户本地安装的Python环境及第三方模块,需重新安装相关依赖。

初次使用时,建议从官网下载并安装AirtestIDE。启动IDE后,界面左侧分为Airtest辅助窗口和Poco辅助窗口:Airtest窗口可快速生成截图识别、点击、滑动等操作代码;Poco窗口用于查看应用控件树并生成控件操作代码。中间区域为代码编辑框和Log窗体,用于编写代码及查看输出日志。右侧为设备窗口,用于连接设置和设备选择;选定设备后,右侧将显示该设备的当前UI界面。IDE界面布局如下图所示。

二、基本使用

Airtest借鉴了图形脚本语言Sikuli的设计思路,用户无需逐行编写测试代码,而是通过截图方式生成相关操作代码(熟悉API的开发者也可直接手写代码)。下图展示了一个通过截图实现的简单Demo示例。

官方文档地址:https://airtest.doc.io.netease.com/

三、本地环境使用及常见问题

1. 通过“pip install airtest”命令进行安装

项目支持Python 2.7或Python 3.6及以下版本,官方推荐使用Python 3。在实践中,若忽略版本限制而使用Python 3.8环境进行安装,通常会失败。具体报错信息如下:

ERROR: Could not find a version that satisfies the requirement opencv-contrib-python<=3.4.2.17 (from airtest) (from versions: 3.4.8.29, 3.4.9.31, 3.4.9.33, 4.1.2.30, 4.2.0.32, 4.2.0.34) ERROR: No matching distribution found for opencv-contrib-python<=3.4.2.17 (from airtest)

错误原因在于Airtest依赖的opencv-python版本需小于3.4.2.17,而Python 3.8及以上版本无法安装该低版本OpenCV库。即使手动下载opencv-python 3.4.2.17以上的whl文件进行本地安装,在Python 3.8环境下仍会报不支持安装的错误。 解决方法包括:安装两个不同版本的Python并在使用时切换环境;或将Python版本降低至3.6及以下;或者直接直接使用AirtestIDE。

2. IDE连接不存在或被占用设备时易出现假死

在进行远程连接时,若尝试连接不存在的设备或已被占用的设备,IDE可能会在几秒内出现假死现象。

3. 假死期间关闭IDE可能导致adb进程驻留

若在IDE假死期间强制关闭IDE,adb进程可能无法正常退出而驻留后台。这会导致再次启动IDE时唤起新的adb进程。该现象为偶发性,有时可复现,有时则否。

4. 尝试连接不存在设备时,设备仍会加入列表

当尝试连接不存在的设备时,该设备仍会被加入设备列表,状态显示为offline。通常通过adb devices命令可查看实际连接设备,此处显示offline的具体原因不明。此外,模拟器需通过adb connect连接后才能在IDE中操作。有时即使设备在线且端口未被占用,连接时仍显示offline。

四、总结与建议

AirtestProject作为近年开发的移动自动化测试框架,特点鲜明:一是支持跨平台;二是对原生应用、Hybrid应用、Web应用及移动游戏均有良好支持;三是采用Sikuli图形脚本思路,通过IDE选取动作加截图即可编写代码。该项目在GitHub上开源,Issue区活跃度较高。

在实际使用中,完善的开发者文档有助于解决诸多问题。尽管文中描述了IDE的若干Bug,但这并不否定AirtestProject作为优秀自动化测试框架的价值,因为IDE仅是编辑器,不代表项目核心特性。相反,Airtest的多项特性使其表现优异。利用AirtestIDE快速上手的优势并未因这些Bug而大打折扣。使用时可通过以下操作规避Bug:连接时避免频繁点击;假死关闭时手动清除相关进程;连接失败时可重启模拟器或检查端口占用情况。总体而言,相信AirtestIDE未来会进行更多优化。

至此,关于Python Airtest自动化测试工具的使用介绍完毕。更多相关Python Airtest内容可搜索本站往期文章或继续浏览后续文章,希望大家多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。