第1章 自动化测试环境搭建
1.1 环境概览与原理
权限请求 UI 自动化测试依赖一套完整的工具链将用户操作脚本转化为设备指令。其核心原理为:测试脚本通过 Appium / WebDriver 协议向设备端发送权限弹窗定位与交互命令,底层依赖 Android SDK 提供的 adb 通信通道与 UiAutomator2 驱动。环境搭建的最终目标是在操作系统上串联起 Node.js 运行时 → Appium Server → Android Debug Bridge → 目标设备 这条指令链路,并验证各环节连通性。
1.2 操作系统配置
三种主流开发操作系统的关键配置项如下表所示,核心差异集中在 包管理器、环境变量持久化方式 与 路径分隔符 上。
| 配置项 | Windows 10/11 | macOS 12+ | Ubuntu 20.04+ |
|---|---|---|---|
| 包管理器 | choco / winget | Homebrew | apt |
| Shell 配置 | 系统环境变量(PATH) | ~/.zshrc | ~/.bashrc |
| 路径分隔符 | 反斜杠 \ | 正斜杠 / | 正斜杠 / |
| JDK 推荐版本 | JDK 17 (Temurin) | JDK 17 (Eclipse Temurin) | JDK 17 (OpenJDK) |
| Node.js 推荐版本 | v18 LTS | v18 LTS | v18 LTS |
完成以下基础软件安装,并确保对应命令可在新终端中直接调用:
# 验证基础运行时(Windows 使用 cmd / PowerShell)
node --version
npm --version
java --version
1.3 Appium 与 WebDriver 依赖安装
Appium 2.x 采用 插件式驱动架构,需通过 CLI 单独安装目标平台的 driver。权限请求 UI 测试主要使用 UiAutomator2(Android)驱动。
# 全局安装 Appium
npm install -g appium
# 确认版本(应 ≥ 2.0)
appium --version
# 安装 Android 平台驱动
appium driver install uiautomator2
# 列出已安装驱动
appium driver list --installed
如需测试 iOS 权限弹窗,额外安装 XCUITest 驱动:
appium driver install xcuitest
appium --driver-check,确认 uiautomator2 状态为 installed 且版本号与 Appium 主版本匹配。
1.4 Android SDK 路径配置
Android SDK 是 adb 与 UiAutomator2 的底层依赖。通过 Android Studio 安装 SDK 后,必须显式配置 ANDROID_HOME 环境变量并将 platform-tools 与 tools 加入 PATH。
Windows(系统环境变量 → 新建):
变量名: ANDROID_HOME
变量值: C:\Users\你的用户名\AppData\Local\Android\Sdk
# 在 PATH 中追加
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
macOS / Linux(~/.zshrc 或 ~/.bashrc):
# Android SDK
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
# 立即生效
source ~/.zshrc
验证 SDK 配置是否生效:
# 检查 ANDROID_HOME 值
echo $ANDROID_HOME
# 检查 adb 是否可调用
adb --version
# 列出已安装 SDK 平台
sdkmanager --list | grep "platforms;"
ANDROID_HOME指向了 Android Studio 安装目录而非 SDK 目录。platform-tools路径未追加到PATH,导致adb命令找不到。- 环境变量修改后未重新打开终端或重启。
1.5 模拟器与真机连接验证
设备连接是自动化测试的“最后一公里”。无论使用模拟器还是真机,均需通过 adb devices 确认设备处于 可识别 且 已授权 状态。
模拟器(推荐使用 Android Studio AVD):
# 创建并启动模拟器(API 33, 1080x1920)
avdmanager create avd -n test_device -k "system-images;android-33;google_apis;x86_64"
emulator -avd test_device -no-snapshot -wipe-data &
# 等待模拟器完全启动后检查连接
adb devices
真机连接步骤:
- 开启手机 开发者选项 与 USB 调试。
- 使用数据线连接电脑,选择 传输文件(MTP) 模式。
- 首次连接时接受手机上弹出的 RSA 密钥授权 对话框。
- 执行
adb devices确认状态为device。
# 典型成功输出
List of devices attached
emulator-5554 device
# 或
0123456789ABCD device
# 若状态为 unauthorized,重新插拔并确认授权
adb devices 输出中目标设备行末尾显示 device(而非 unauthorized 或 offline),且 appium --version 与 adb --version 均无错误。
1.6 环境搭建清单
以下表格列出环境搭建后必须逐项确认的组件版本与验证命令,建议将此清单作为 环境验收测试用例 固化到 CI 流程中。
| 组件 | 最低版本 | 验证命令 | 通过标准 |
|---|---|---|---|
| Node.js | ≥ 14.0 | node --version |
输出 v18.x.x 或 v20.x.x |
| Appium | ≥ 2.0 | appium --version |
输出 2.x.x |
| UiAutomator2 Driver | 最新 | appium driver list --installed |
显示 uiautomator2 ✔ |
| ANDROID_HOME | — | echo $ANDROID_HOME |
输出有效 SDK 目录 |
| adb | ≥ 1.0.40 | adb --version |
输出版本号且无 error |
| 目标设备 | — | adb devices |
显示 device 状态 |
1.7 环境搭建流程总览
下图将 1.1–1.5 节的配置步骤整合为一条可重复执行的搭建流水线,从操作系统层逐步向上构建至设备连接层。每个节点代表一个 独立可验证的里程碑,箭头方向表示前置依赖关系。
node --version && appium --version && echo $ANDROID_HOME && adb devices
如果四行输出都符合预期,说明环境搭建已全部就绪,可以进入第 2 章的脚本编写环节。
- 模拟器启动后等待 10–15 秒再执行
adb devices,避免因系统服务未完全加载导致误判为 offline。 - 真机测试时使用 专用 USB 端口,避免通过 USB Hub 连接导致供电不足或断连。
- 将
appium --version与adb --version的输出版本号记录到项目 README 中,便于团队对齐环境。