Airtest自动化测试入门第一篇:环境搭建与5分钟上手

📅 2026/7/8 9:47:53 👁️ 阅读次数 📝 编程学习
Airtest自动化测试入门第一篇:环境搭建与5分钟上手

网易出品,基于图像识别 + 控件识别的跨平台UI自动化测试框架。不用写复杂代码,截图就能写脚本。


目录

  1. Airtest是什么
  2. 为什么选择Airtest
  3. 核心概念:双引擎架构
  4. AirtestIDE安装与界面
  5. 连接设备
  6. 5分钟上手:录制你的第一个脚本
  7. 脚本结构与运行方式
  8. 常见问题排查
  9. 总结

一、Airtest是什么

1.1 一句话理解

Airtest是网易推出的跨平台UI自动化测试框架,最大的特点是基于图像识别——你只需要截图,它就能找到按钮并点击。

1.2 它不是什么

Airtest ≠ Selenium (Selenium只能测Web) Airtest ≠ Appium (Appium配置复杂,依赖元素定位) Airtest ≠ 按键精灵 (Airtest更专业,支持编程扩展) Airtest = 图像识别 + 控件识别 + 跨平台 + Python脚本

1.3 核心能力

能力说明
图像识别截图就能定位元素,不依赖DOM/控件树
控件识别通过Poco框架精准定位UI控件
跨平台Android、iOS、Windows、Web、小程序
录制回放操作手机自动生成代码,零基础也能用
Python脚本基于Python,可编程扩展
报告生成自动生成HTML测试报告

1.4 适用场景

✅ 适合: - 游戏自动化测试(图像识别天生适合游戏) - APP自动化测试(Android/iOS) - 微信小程序测试 - 桌面应用测试(Windows) - 无法获取元素树的应用 - 新手快速上手自动化 ❌ 不太适合: - 纯Web端测试(Selenium更成熟) - 需要大量并发的高性能场景 - 对图像变化非常敏感的场景(图标频繁更新)

二、为什么选择Airtest

2.1 Airtest vs 其他工具

对比维度AirtestAppiumSelenium
定位方式图像+控件控件(XPath等)控件(XPath等)
环境搭建⭐ 简单(IDE一键安装)⭐⭐⭐ 复杂⭐⭐ 中等
上手难度⭐ 低(可录制)⭐⭐⭐ 高⭐⭐ 中
游戏测试✅ 支持❌ 不支持❌ 不支持
小程序测试✅ 支持❌ 困难❌ 不支持
脚本语言Python多语言多语言
报告✅ 自带HTML报告❌ 需自行集成❌ 需自行集成
开源免费

2.2 新手友好的设计

传统自动化工具: 安装SDK → 配置环境变量 → 写代码 → 调试 → 运行 → 出报告 (新手至少半天到一天) Airtest: 下载IDE → 连手机 → 录操作 → 点运行 (新手5分钟出结果)

三、核心概念:双引擎架构

3.1 两大引擎

┌─────────────────────────────────────────┐ │ Airtest Project │ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Airtest │ │ Poco │ │ │ │ (图像识别) │ │ (控件识别) │ │ │ │ │ │ │ │ │ │ 截图匹配定位 │ │ UI树精准定位 │ │ │ │ 适合游戏/动画 │ │ 适合标准APP │ │ │ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ └────────┬────────┘ │ │ │ │ │ ┌───────┴───────┐ │ │ │ AirtestIDE │ │ │ │ (一站式编辑器) │ │ │ │ 录制/回放/报告 │ │ │ └───────────────┘ │ └─────────────────────────────────────────┘

3.2 什么时候用哪个引擎

场景推荐引擎原因
游戏界面Airtest(图像识别)游戏没有标准控件
APP标准页面Poco(控件识别)控件定位更精准稳定
弹窗/ToastAirtest(图像识别)Toast没有控件树
列表滚动Poco(控件识别)控件可以swipe
动画/特效Airtest(图像识别)图像比控件更直观
混合应用(H5+原生)两者混合各取所长

3.3 一个脚本可以同时用两个引擎

python

# -*- encoding=utf8 -*- __author__ = "测试工程师" from airtest.core.api import * # Airtest图像识别API from poco.drivers.android.uiautomation import AndroidUiautomationPoco auto_setup(__file__) # 用图像识别点击"开始游戏"按钮(游戏界面) touch(Template(r"start_btn.png")) # 用Poco点击登录按钮(APP标准页面) poco = AndroidUiautomationPoco() poco("登录").click() # 用图像识别验证结果 assert_exists(Template(r"success.png"), "登录成功")

四、AirtestIDE安装与界面

4.1 下载安装

下载地址:https://airtest.netease.com/ Windows:下载 .exe 安装包,一路下一步 Mac:下载 .dmg 安装包,拖入Applications Linux:暂不支持IDE,可使用命令行方式 当前最新版本:AirtestIDE 1.3.x

4.2 界面介绍

打开IDE后,你会看到:

┌──────────────────────────────────────────────────┐ │ 菜单栏:文件 编辑 视图 选项 工具 帮助 │ ├────────┬─────────────────┬───────────────────────┤ │Airtest │ │ │ │辅助窗 │ 代码编辑区 │ 设备显示区 │ │ │ │ (手机屏幕镜像) │ │·录制 │ # 脚本代码 │ │ │·运行 │ touch(...) │ ┌───────────┐ │ │·暂停 │ swipe(...) │ │ │ │ │·停止 │ assert_... │ │ 手机画面 │ │ │ │ │ │ │ │ │Poco │ │ └───────────┘ │ │辅助窗 │ │ │ │ │ │ │ ├────────┴─────────────────┴───────────────────────┤ │ 日志区:显示运行日志和结果 │ └──────────────────────────────────────────────────┘

四大区域

区域功能
辅助窗(左侧)录制按钮、截图管理、Poco控件树
代码编辑区(中间)编写Python脚本,支持语法高亮
设备显示区(右侧)实时显示手机屏幕,可操作
日志区(底部)运行日志、错误信息、报告入口

4.3 首次配置

python

# 打开IDE后,建议做以下配置: # 1. 设置Python解释器 # 选项 → 设置 → 自定义Python路径 # 一般会自动检测,不需要手动设置 # 2. 设置报告输出路径 # 选项 → 设置 → 报告默认输出目录 # 3. 检查ADB(Android调试桥) # 选项 → 设置 → ADB路径 # 一般IDE自带ADB,不需要额外配置

五、连接设备

5.1 连接Android手机(最常用)

第1步:手机开启开发者模式
设置 → 关于手机 → 连续点击"版本号"7次 → 返回 → 出现"开发者选项"
第2步:开启USB调试
设置 → 开发者选项 → 开启: ✅ USB调试 ✅ USB安装(部分手机需要) ✅ 允许屏幕重叠(部分手机需要)
第3步:USB连接电脑
用数据线连接手机和电脑 → 手机会弹出"允许USB调试" → 点"允许"
第4步:AirtestIDE连接
IDE右上角设备选择区 → 点击"刷新"按钮 → 看到你的设备 → 点击"连接"
第5步:验证连接
连接成功后,设备显示区会出现手机屏幕画面 用鼠标点击画面 → 手机同步响应 → 连接成功!
常见手机品牌特殊设置
品牌额外操作
华为/荣耀设置中搜索"仅充电模式下允许ADB调试",开启
小米/红米同时开启"USB调试(安全设置)"
OPPO/一加关闭"权限监控"
vivo输入*##777##*进入开发者选项
三星可能需要安装Samsung USB驱动

5.2 连接iOS设备(需要Mac)

bash

# 前置条件:Mac电脑 + Xcode # 第1步:安装依赖 pip install tidevice # 第2步:USB连接iPhone # 第3步:在IDE中选择iOS设备连接 # 注意:iOS测试功能相对Android有限制

5.3 连接Windows窗口

# 方法一:通过窗口标题连接 # IDE设备列表 → 选择"Windows" → 输入窗口标题 → 连接 # 方法二:通过代码连接 from airtest.core.api import * connect_device("Windows:///窗口标题")

5.4 无线连接(ADB WiFi)

bash

# 第1步:先用USB连接,确认ADB正常 adb devices # 第2步:开启TCP/IP模式 adb tcpip 5555 # 第3步:拔掉USB,用WiFi连接 adb connect 手机IP地址:5555 # 例如:adb connect 192.168.1.100:5555 # 第4步:在IDE中刷新设备列表,连接

六、5分钟上手:录制你的第一个脚本

6.1 目标

自动打开计算器APP,输入1 + 2 =,验证结果是3

6.2 操作步骤

第1步:新建脚本
IDE菜单栏 → 文件 → 新建 → 选择 .air 项目 → 输入名称"calculator_test"
第2步:连接手机
确保手机已连接,设备区能看到手机画面
第3步:开始录制
点击左侧Airtest辅助窗的 🔴 录制按钮
第4步:操作手机
在设备区依次操作: ① 回到桌面(按Home键) ② 点击计算器图标 ③ 点击数字 1 ④ 点击运算符 + ⑤ 点击数字 2 ⑥ 点击 = ⑦ 查看结果是否为 3
第5步:添加断言
点击辅助窗的"断言"按钮 → 在设备区框选显示"3"的区域 → 自动生成断言代码
第6步:停止录制
再次点击录制按钮(或按Esc)停止录制

6.3 生成的代码

python

# -*- encoding=utf8 -*- __author__ = "测试工程师" from airtest.core.api import * auto_setup(__file__) # 回到桌面 keyevent("HOME") sleep(1.0) # 点击计算器图标 touch(Template(r"tpl1654245123456.png", record_pos=(0.2, 0.5), resolution=(1080, 1920))) sleep(1.0) # 输入 1 touch(Template(r"tpl1654245123457.png", record_pos=(-0.3, 0.2), resolution=(1080, 1920))) sleep(0.5) # 输入 + touch(Template(r"tpl1654245123458.png", record_pos=(0.2, 0.2), resolution=(1080, 1920))) sleep(0.5) # 输入 2 touch(Template(r"tpl1654245123459.png", record_pos=(-0.1, 0.2), resolution=(1080, 1920))) sleep(0.5) # 输入 = touch(Template(r"tpl1654245123460.png", record_pos=(0.2, 0.3), resolution=(1080, 1920))) sleep(0.5) # 验证结果 assert_exists(Template(r"tpl1654245123461.png", record_pos=(0, 0.1), resolution=(1080, 1920)), "计算结果应为3")

6.4 点击运行

点击IDE顶部工具栏的 ▶ 运行按钮 或按快捷键 F5

6.5 查看报告

运行完成后 → 点击日志区右上角的"查看报告"按钮 自动打开HTML报告,包含: - 每个步骤的执行截图 - 通过/失败状态 - 执行耗时 - 错误信息

七、脚本结构与运行方式

7.1 脚本文件结构

calculator_test.air/ ← .air项目目录 ├── calculator_test.py ← 主脚本文件 ├── tpl1654245123456.png ← 截图文件(图像识别用) ├── tpl1654245123457.png ├── tpl1654245123458.png ├── tpl1654245123459.png ├── tpl1654245123460.png ├── tpl1654245123461.png └── log/ ← 运行日志(自动生成) └── ...

7.2 脚本头部模板

python

# -*- encoding=utf8 -*- __author__ = "你的名字" from airtest.core.api import * # 自动初始化设备连接(使用IDE中已连接的设备) auto_setup(__file__) # 你的测试代码从这里开始...

7.3 三种运行方式

bash

# 方式一:在IDE中运行(推荐入门使用) # 点击 ▶ 按钮 或 按 F5 # 方式二:命令行运行(推荐集成CI使用) airtest run calculator_test.air --device Android:///设备序列号 # 方式三:Python脚本运行 python -m airtest run calculator_test.air --device Android:///

7.4 命令行运行示例

bash

# 基础运行 airtest run test.air # 指定设备 airtest run test.air --device Android:///127.0.0.1:5037/设备序列号 # 指定日志目录 airtest run test.air --log log/ # 生成报告 airtest report test.air --log_root log/ --outfile report.html # 一条龙:运行 + 报告 airtest run test.air --device Android:/// --log log/ airtest report test.air --log_root log/ --outfile report.html --lang zh

八、常见问题排查

8.1 设备连接问题

问题可能原因解决方法
设备列表不显示USB调试没开重新开启USB调试
连接后黑屏手机屏幕熄灭点亮手机屏幕
一直显示"初始化"ADB版本不兼容重启ADB:adb kill-server && adb start-server
连接后操作不响应权限不足检查是否允许USB调试弹窗
多设备时连错没指定设备通过设备序列号指定

8.2 图像识别问题

问题可能原因解决方法
找不到图片截图和设备分辨率不匹配重新截图,确保在同一设备上截图
偶尔找不到网络波动导致画面加载慢增加sleep()等待时间
点错位置相似元素干扰缩小截图范围,截得更精准

8.3 常见错误速查

python

# 错误1:找不到模板图片 # ImageNotFoundError: Template not found # 解决:检查截图是否存在,或重新截图 # 错误2:设备未连接 # DeviceConnectionError # 解决:检查设备连接状态,点击刷新 # 错误3:ADB端口冲突 # adb server version doesn't match # 解决:adb kill-server && adb start-server

九、总结

核心要点

1. Airtest = 图像识别(Airtest) + 控件识别(Poco) 2. 下载IDE → 连手机 → 录操作 → 点运行,5分钟上手 3. 图像识别适合游戏和复杂UI,控件识别适合标准APP 4. .air是项目目录,包含.py脚本和.png截图 5. 支持IDE运行、命令行运行、Python脚本运行

下一步学习路线

本篇:环境搭建 + 设备连接 + 5分钟录制 ↓ 第2篇:Airtest核心API详解 - touch、swipe、text、keyevent - 等待机制:sleep、wait、exists - 断言:assert_exists、assert_equal ↓ 第3篇:Poco控件识别 - Poco初始化与连接 - 控件定位、等待、操作 - Airtest + Poco混合编程 ↓ 第4篇:APP自动化测试实战 ↓ 第5篇:小程序与Web测试 ↓ 第6篇:批量运行与CI集成

下一篇预告:Airtest自动化测试专题第二篇——「图像识别脚本编写:核心API详解与实战技巧」,深入掌握touch、swipe、wait、assert等核心操作。


本文约4500字,是「Airtest自动化测试专题」第1篇。建议边看边操作,连接真机跟着录制一遍,效果最好。