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 连接:
    1. 打开 AirtestIDE,点击左侧「Android」按钮;
    2. 等待设备列表加载,选择你的设备(模拟器显示为 127.0.0.1:端口号);
    3. 点击「Connect」,成功后会显示手机屏幕投屏到 IDE 左侧。

场景 2:连接 Windows 窗口

  • 打开 AirtestIDE,点击左侧「Windows」按钮;
  • 选择需要自动化的窗口(如记事本、浏览器),点击「Connect」;
  • 成功后左侧会显示该窗口的投屏界面。

2. 核心操作:录制 / 编写脚本

Airtest 支持「录制脚本」(新手友好)和「手动编写」(灵活)两种方式:

方式 1:录制脚本(零基础快速上手)

  1. 点击 IDE 顶部「录制」按钮(红色圆点);
  2. 在左侧投屏界面操作设备 / 窗口(如点击按钮、输入文字、滑动屏幕);
  3. IDE 会自动生成对应的代码到编辑区;
  4. 停止录制(点击方形按钮),即可得到可运行的脚本。

方式 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 记事本自动化完成!")

四、常见问题及解决方案

  1. 设备连接失败

    • 原因:adb 未启动 / 设备未开启 USB 调试 / 端口被占用;
    • 解决:
      • 重启 adb:adb kill-server && adb start-server
      • 重新开启安卓设备的 USB 调试,插拔 USB 线;
      • 模拟器更换端口(如雷电:设置→手机型号→调试端口)。
      • 端口占用可能因为360占用5037端口,卸载后果断好了
  2. 图片识别失败

    • 原因:图片模板分辨率与设备不符 / 识别阈值太低;
    • 解决:
      • 重新截取设备当前屏幕的图片作为模板;
      • 提高 Templatethreshold 参数(如 0.8);
      • 确保脚本和图片模板在同一目录。
  3. 脚本运行报「找不到模块」

    • 原因:Python 环境未安装 Airtest/poco;
    • 解决:重新执行 pip install airtest pocoui,确保命令行和 IDE 使用同一 Python 环境。

五、进阶技巧(提升脚本稳定性)

  1. 避免硬编码坐标:优先用 Template 图片定位,而非固定坐标;
  2. 增加等待时间:关键操作前加 wait(),避免元素未加载完成导致失败;
  3. 日志分析:运行日志保存在 log 目录,失败时查看截图和报错信息;
  4. 参数化脚本:将设备序列号、输入内容等抽成参数,提高脚本复用性。

六、总结

  1. Airtest 部署分两种方式:AirtestIDE(可视化,新手首选)和 Python 命令行版(适合独立运行脚本),核心依赖是 Python + Airtest/poco 库;
  2. 核心使用流程:连接设备 → 录制 / 编写脚本 → 运行 / 调试,重点掌握 click/text/swipe/wait 等基础函数和 Template 图片定位;
  3. 脚本稳定运行的关键:合理设置等待时间、提高图片识别阈值、避免硬编码,遇到问题优先查看 adb 连接和运行日志。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐