5. App 自动化测试怎么准备
App 自动化测试主要用于 Android 或 iOS 应用的 UI 操作和核心流程回归。相比 Web 自动化,App 自动化更容易受到设备、系统版本、网络、权限弹窗、页面加载、控件定位和环境稳定性的影响。测试岗面试中,App 自动化常围绕 Appium、元素定位、adb、设备管理、权限弹窗、上下文切换、滑动操作、稳定性优化和项目落地展开。
准备 App 自动化,不要只背 Appium API。要能讲清楚:自动化适合覆盖哪些 App 场景,如何连接设备,如何定位元素,如何处理等待和滑动,如何管理测试数据,如何做失败截图和报告,以及如何降低脚本不稳定。
一、App 自动化适合测什么
适合自动化的场景:
- 登录;
- 注册;
- 首页核心入口;
- 搜索;
- 下单;
- 支付前流程;
- 个人中心;
- 权限弹窗;
- 消息通知入口;
- 冒烟回归;
- 多版本兼容基础检查。
不适合优先自动化的场景:
- 页面频繁变化;
- 强依赖视觉效果;
- 一次性活动页;
- 第三方支付真实支付;
- 很难稳定造数的场景。
二、常用工具
App 自动化常用:
- Appium;
- adb;
- Android Studio;
- UIAutomatorViewer 或 Appium Inspector;
- pytest/TestNG;
- Allure;
- Jenkins;
- 真机或模拟器。
Android 面试中 adb 命令也经常被追问。
三、Appium 基本原理
Appium 是跨平台移动端自动化工具,可以控制 Android 和 iOS 应用。
它通过客户端脚本发送命令到 Appium Server,再由 Server 控制设备执行操作。
核心能力:
- 启动 App;
- 定位控件;
- 点击输入;
- 滑动;
- 获取文本;
- 截图;
- 切换上下文;
- 处理系统弹窗。
四、设备和环境准备
App 自动化前要准备:
- 安装 JDK;
- 安装 Android SDK;
- 配置 adb;
- 安装 Appium Server;
- 安装客户端依赖;
- 连接真机或模拟器;
- 开启 USB 调试;
- 获取设备 udid;
- 安装被测 App。
adb 检查设备:
adb devices
五、元素定位
App 元素定位常见方式:
- id;
- accessibility id;
- class name;
- xpath;
- Android UIAutomator;
- iOS predicate。
优先使用稳定的 resource-id 或 accessibility id。不要过度依赖层级很长的 XPath。
六、常见操作
App 自动化常见操作:
- 点击;
- 输入;
- 清空;
- 滑动;
- 长按;
- 获取文本;
- 截图;
- 返回;
- 安装卸载 App;
- 启动关闭 App。
App 场景中滑动查找元素非常常见。
七、等待机制
App 页面加载受设备性能和网络影响,很容易不稳定。
建议使用显式等待,等待元素出现、可点击或文本变化。
不要大量使用固定 sleep。
八、权限弹窗处理
App 首次启动可能出现:
- 定位权限;
- 相机权限;
- 存储权限;
- 通知权限;
- 用户协议弹窗;
- 系统升级弹窗。
自动化脚本要能识别并处理,否则用例会卡住。
九、WebView 场景
很多 App 内嵌 H5 页面,需要切换上下文。
常见上下文:
- NATIVE_APP;
- WEBVIEW_xxx。
如果元素在 WebView 中,原生定位可能找不到,需要切换上下文后按 Web 方式定位。
十、App 自动化不稳定原因
- 设备性能差异;
- 网络波动;
- 元素定位不稳定;
- 页面动画;
- 权限弹窗;
- App 版本变化;
- 数据依赖;
- 多设备兼容;
- WebView 加载慢;
- adb 连接不稳定。
十一、面试回答模板
如果面试官问“App 自动化测试怎么准备”,可以这样回答:
App 自动化我会先明确适合自动化的稳定核心流程,比如登录、搜索、下单、个人中心和冒烟回归。工具上通常使用 Appium,配合 adb、真机或模拟器、pytest/TestNG 和 Allure。准备时要掌握环境搭建、设备连接、desired capabilities、元素定位、点击输入、滑动、显式等待、权限弹窗处理、截图和报告。定位上优先使用 resource-id 或 accessibility id,避免不稳定 XPath。对于 WebView 页面,需要切换上下文。App 自动化稳定性受设备、网络、弹窗和版本影响较大,所以要做好等待、数据隔离和失败截图。
十二、常见追问
追问:App 自动化为什么比 Web 更不稳定?
受设备型号、系统版本、网络、权限弹窗、动画、App 版本和 adb 连接影响更大。
追问:App 中 WebView 怎么测?
先获取 contexts,切换到 WEBVIEW 后使用类似 Web 的定位方式,完成后再切回 NATIVE_APP。
追问:权限弹窗怎么处理?
可以通过启动参数自动授权,也可以脚本中识别系统弹窗并点击允许。
十三、练习清单
- 配置 adb;
- 连接真机;
- 启动 Appium;
- 启动 App;
- 定位登录控件;
- 输入账号密码;
- 处理权限弹窗;
- 做滑动操作;
- 处理 WebView;
- 生成报告和截图。
App 自动化准备重点是环境、元素定位、等待、弹窗和稳定性。能讲清这些,比只背 Appium API 更有价值。
配套刷题:

