第1章 自动化测试环境搭建

1.1 环境概览与原理

权限请求 UI 自动化测试依赖一套完整的工具链将用户操作脚本转化为设备指令。其核心原理为:测试脚本通过 Appium / WebDriver 协议向设备端发送权限弹窗定位与交互命令,底层依赖 Android SDK 提供的 adb 通信通道与 UiAutomator2 驱动。环境搭建的最终目标是在操作系统上串联起 Node.js 运行时 → Appium Server → Android Debug Bridge → 目标设备 这条指令链路,并验证各环节连通性。

链路检查口诀: Node.js 可运行 appium,appium 可调 adb,adb 可识别设备,设备状态为 "device"。

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
⚠ 路径禁忌: 安装路径、项目路径、SDK 路径中严禁包含 中文、空格 或 特殊符号(如 ! @ #),否则会导致 adb 或 Appium 解析路径失败。

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;"
⚠ 常见失败原因:
  1. ANDROID_HOME 指向了 Android Studio 安装目录而非 SDK 目录。
  2. platform-tools 路径未追加到 PATH,导致 adb 命令找不到。
  3. 环境变量修改后未重新打开终端或重启。

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

真机连接步骤:

  1. 开启手机 开发者选项 与 USB 调试。
  2. 使用数据线连接电脑,选择 传输文件(MTP) 模式。
  3. 首次连接时接受手机上弹出的 RSA 密钥授权 对话框。
  4. 执行 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 节的配置步骤整合为一条可重复执行的搭建流水线,从操作系统层逐步向上构建至设备连接层。每个节点代表一个 独立可验证的里程碑,箭头方向表示前置依赖关系。

自动化测试环境搭建流程 1. 操作系统配置 2. 安装 Node.js & Appium 3. 配置 Android SDK 路径 4. 连接模拟器 / 真机 5. adb 连接验证 6. 环境就绪 ✅ 各步骤关键说明 ① 安装 JDK 17 + Node.js v18 并配置系统 PATH ② npm install -g appium appium driver install uiautomator2 ③ 设置 ANDROID_HOME 追加 platform-tools 到 PATH ④ 模拟器:AVD 创建并启动 真机:开启 USB 调试并授权 ⑤ adb devices 检查状态 确认显示 "device" ⑥ 全部通过 → 环境可用 📌 后续每章均依赖此环境 请确保步骤 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 中,便于团队对齐环境。