Airtest 部署与应用全指南
Airtest 是网易出品的跨平台 UI 自动化测试框架,支持 Android/iOS/Windows 平台,上手门槛低、图像识别能力强,非常适合 APP 和 PC 端的自动化测试。
一、Airtest 部署(两种方式:IDE 可视化版 / 纯命令行版)
Airtest 有两种部署方式:AirtestIDE(可视化界面,适合新手)和 Python 命令行版(适合脚本独立运行,对应之前讲的「独立执行」),优先推荐新手先装 IDE 上手。
方式 1:AirtestIDE 部署(可视化,零基础友好)
1. 下载安装
- 官网下载:AirtestIDE 官方下载(Windows/Mac/Linux 均支持)
- 安装:无需安装,解压后直接运行
AirtestIDE.exe(Windows)/AirtestIDE.app(Mac)即可。 - 验证:打开后能看到如下界面,说明启动成功:
- 左侧:设备连接区(手机 / Windows 窗口)
- 中间:脚本编辑区
- 右侧:辅助面板(截图、录屏、元素定位)
2. 环境检查(关键)
AirtestIDE 自带 Python 和 Airtest 依赖,但需检查设备连接工具:
- 安卓设备:IDE 自带 adb 工具,无需额外安装;
- Windows 窗口:需确保电脑安装了 VC++ 运行库(Windows 10/11 一般自带,缺失可下载 微软 VC++ 运行库);
- iOS 设备:需额外配置 WebDriverAgent(新手建议先从安卓 / Windows 入手)。
方式 2:Python 命令行版部署(适合脚本独立运行)
如果不需要 IDE,仅用命令行运行脚本,按以下步骤部署:
1. 安装 Python
- 下载:Python 3.6~3.9 版本,优选3.6版本,安装时勾选「Add Python to PATH」;
- 验证:命令行输入
python --version,显示版本号即成功。
2. 安装 Airtest 核心依赖
# 安装 Airtest 主库
pip install airtest
# 安装 poco(移动端元素定位必备)
pip install pocoui
# 验证安装:查看版本
airtest version
二、Airtest 核心使用教程
1. 设备连接(最基础,以安卓 / Windows 为例)
场景 1:连接安卓真机 / 模拟器
- 安卓真机:开启「开发者选项」→「USB 调试」,用 USB 连接电脑;
通用开启步骤
1、激活开发者选项:进入手机“设置” > “关于手机”(或“我的设备”),找到“版本号”(部分机型为“MIUI版本”、“内部版本号”等),连续快速点击7次左右,直到屏幕提示“您已处于开发者模式”或类似信息。
2、启用USB调试:返回设置主界面,找到新出现的“开发者选项”(通常在“系统”、“更多设置”或“系统和更新”中),进入后找到“USB调试”选项,打开其开关。
3、连接与授权:使用数据线连接手机和电脑,手机通常会弹出“允许USB调试吗?”的提示,选择“确定”或“允许”以完成授权。
4、获取手机的IP地址:可以在 手机设置-关于手机-状态信息-IP地址 里找到。
- 安卓模拟器(雷电 / 夜神):开启模拟器的「USB 调试」,确保模拟器端口(如雷电默认 5555、夜神 62001)未被占用;
- IDE 连接:
- 打开 AirtestIDE,点击左侧「Android」按钮;
- 等待设备列表加载,选择你的设备(模拟器显示为
127.0.0.1:端口号); - 点击「Connect」,成功后会显示手机屏幕投屏到 IDE 左侧。
场景 2:连接 Windows 窗口
- 打开 AirtestIDE,点击左侧「Windows」按钮;
- 选择需要自动化的窗口(如记事本、浏览器),点击「Connect」;
- 成功后左侧会显示该窗口的投屏界面。
2. 核心操作:录制 / 编写脚本
Airtest 支持「录制脚本」(新手友好)和「手动编写」(灵活)两种方式:
方式 1:录制脚本(零基础快速上手)
- 点击 IDE 顶部「录制」按钮(红色圆点);
- 在左侧投屏界面操作设备 / 窗口(如点击按钮、输入文字、滑动屏幕);
- IDE 会自动生成对应的代码到编辑区;
- 停止录制(点击方形按钮),即可得到可运行的脚本。
方式 2:手动编写脚本(核心,推荐掌握)
以下是覆盖 90% 常用场景的示例脚本(以安卓打开抖音、搜索airtest内容为例),包含注释说明:
# -*- encoding=utf8 -*-
__author__ = "dehuisun"
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
from poco.exceptions import PocoNoSuchNodeException
# 初始化Poco控件定位
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
auto_setup(__file__)
# 1. 启动抖音
start_app("com.ss.android.ugc.aweme")
sleep(2) # 等待APP加载完成
# 2. 点击搜索按钮(图像识别,相似度0.8)
# search_btn = Template(r"tpl1773884177512.png", threshold=0.8, record_pos=(0.45, -0.88), resolution=(1080, 2340))
# touch(search_btn)
touch(Template(r"tpl1773885656973.png", record_pos=(0.419, -0.908), resolution=(1080, 2340)))
sleep(2)
# 3. 输入搜索内容(Airtest自动定位输入框,无需Poco)
# 关键:text()函数会自动识别当前激活的输入框,直接输入内容
text("Airtest")
sleep(2)
# 4. 点击搜索(回车键模拟)
keyevent("ENTER")
sleep(3)
# 5. 断言:验证搜索结果存在(截图验证)
assert_exists(Template(r"tpl1773883892062.png"), "搜索结果加载成功")
# 6. 返回首页并退出APP
keyevent("BACK")
sleep(1)
stop_app("com.ss.android.ugc.aweme")
# 7. 生成测试报告(可选)
from airtest.report.report import simple_report
simple_report(__file__, logpath="./log", output="douyin_test_report.html")
3. 运行脚本(IDE / 命令行)
方式 1:IDE 运行
- 点击 IDE 顶部「运行」按钮(绿色三角);
- 底部「Log」面板会显示运行日志,成功则无红色报错,失败会提示具体原因(如元素未找到)。
方式 2:命令行运行(独立执行)
# 进入脚本所在目录
cd /path/to/your/script
# 运行脚本(指定设备)
airtest run test_wechat.py --device Android://127.0.0.1:5037/设备序列号 --log log/
4. 关键功能详解(新手必掌握)
| 功能 / 函数 | 作用 | 示例 |
|---|---|---|
start_app(package) |
打开安卓 App | start_app("com.android.settings") |
stop_app(package) |
关闭安卓 App | stop_app("com.android.settings") |
touch(Template/坐标) |
点击元素 | touch((500, 500)) 或 touch(Template("btn.png")) |
text(content) |
输入文字 | text("hello airtest") |
swipe(起点, 终点) |
滑动屏幕 | swipe((500, 1800), (500, 800)) |
wait(Template, timeout) |
等待元素出现 | wait(Template("btn.png"), timeout=10) |
assert_exists(Template, msg) |
断言元素存在 | assert_exists(Template("result.png"), "操作失败") |
snapshot() |
截图保存 | snapshot(filename="test.png") |
三、实战案例:Windows 端记事本自动化
以下是 Windows 端自动化的完整脚本,可直接运行:
# -*- encoding=utf8 -*-
__author__ = "your_name"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
# 初始化 Windows 环境
if not cli_setup():
auto_setup(__file__, devices=["Windows:///"], logdir=True)
# 打开记事本
start_app("notepad.exe")
# 等待记事本窗口出现
wait(Template(r"notepad_title.png"), timeout=5)
# 输入文字
text("Airtest Windows 自动化教程")
# 保存文件(快捷键 Ctrl+S)
keyevent("ctrl+s")
# 等待保存窗口,输入文件名
wait(Template(r"save_dialog.png"), timeout=5)
text("airtest_demo.txt")
# 点击保存按钮
click(Template(r"save_btn.png"))
# 关闭记事本
keyevent("alt+f4")
print("Windows 记事本自动化完成!")
四、常见问题及解决方案
-
设备连接失败
- 原因:adb 未启动 / 设备未开启 USB 调试 / 端口被占用;
- 解决:
- 重启 adb:
adb kill-server && adb start-server; - 重新开启安卓设备的 USB 调试,插拔 USB 线;
- 模拟器更换端口(如雷电:设置→手机型号→调试端口)。
- 端口占用可能因为360占用5037端口,卸载后果断好了
- 重启 adb:
-
图片识别失败
- 原因:图片模板分辨率与设备不符 / 识别阈值太低;
- 解决:
- 重新截取设备当前屏幕的图片作为模板;
- 提高
Template的threshold参数(如 0.8); - 确保脚本和图片模板在同一目录。
-
脚本运行报「找不到模块」
- 原因:Python 环境未安装 Airtest/poco;
- 解决:重新执行
pip install airtest pocoui,确保命令行和 IDE 使用同一 Python 环境。
五、进阶技巧(提升脚本稳定性)
- 避免硬编码坐标:优先用
Template图片定位,而非固定坐标; - 增加等待时间:关键操作前加
wait(),避免元素未加载完成导致失败; - 日志分析:运行日志保存在
log目录,失败时查看截图和报错信息; - 参数化脚本:将设备序列号、输入内容等抽成参数,提高脚本复用性。
六、总结
- Airtest 部署分两种方式:AirtestIDE(可视化,新手首选)和 Python 命令行版(适合独立运行脚本),核心依赖是 Python + Airtest/poco 库;
- 核心使用流程:连接设备 → 录制 / 编写脚本 → 运行 / 调试,重点掌握
click/text/swipe/wait等基础函数和Template图片定位; - 脚本稳定运行的关键:合理设置等待时间、提高图片识别阈值、避免硬编码,遇到问题优先查看 adb 连接和运行日志。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)