我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/5. App 自动化测试怎么准备

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。

追问:权限弹窗怎么处理?

可以通过启动参数自动授权,也可以脚本中识别系统弹窗并点击允许。

十三、练习清单

  1. 配置 adb;
  2. 连接真机;
  3. 启动 Appium;
  4. 启动 App;
  5. 定位登录控件;
  6. 输入账号密码;
  7. 处理权限弹窗;
  8. 做滑动操作;
  9. 处理 WebView;
  10. 生成报告和截图。

App 自动化准备重点是环境、元素定位、等待、弹窗和稳定性。能讲清这些,比只背 Appium API 更有价值。

配套刷题: