用户端 App 自动化测试
霍格沃兹测试开发学社
ceshiren.com
自我介绍
- 江湖代号:老钱 。
- 互联网行业工作时间 10 年:2 年开发,8 年测试;涉及后端开发,测试工具开发,运维,自动化测试,测试管理等工作,目前在一家互联网金融公司担任测试开发工程师。
- 职业信条:测试不是二等公民,不懂开发误谈测试。
课程安排
- Appium 介绍
- Appium 1.x 与 2.x
- Appium Desired Capability
- Appium Inspector 用法
- App 安装与启动
- Appium UI 自动化测试实现
1. Appium 介绍
Appium
Appium 是一个流行的开源自动化测试工具,它提供了一个跨平台的解决方案,用于自动化原生、移动 Web 和混合应用程序的测试。
跨平台支持
- iOS
- Android
- windows, mac2, ... 等
多种语言支持
- Java
- Python
- Ruby
- JavaScript
- C#
- ...
支持多种自动化框架
- TestNG
- JUnit
- pytest
- nosetests
模拟器和真机测试
- 真机
- 模拟器
课程安排
-
Appium 介绍
- Appium 1.x 与 2.x
- Appium Desired Capability
- Appium Inspector 用法
- App 安装与启动
- Appium UI 自动化测试实现
2. Appium 1.x 与 2.x
Appium 1.x
- Appium 1.x 版本是 Appium 测试自动化框架的早期版本
- 主要提供了支持移动端自动化测试的强大功能
- 目前部分公司仍旧在使用这个版本
下载与安装
- 官网 https://github.com/appium/appium-desktop
- 最终版本: V1.22.3-4 (注意已经停止更新和维护)
- 运行方法:直接运行
- Demo: 打开官网介绍

Appium 2.x
- Appium 2.0 被重新定义为一个平台,可以轻松创建和共享“驱动程序”和“插件”。驱动程序是引入对给定平台自动化支持的代码项目,而插件允许覆盖、更改、扩展或向 Appium 添加行为的代码项目
安装
- 官网 https://appium.io/docs/en/2.1/quickstart/install/
- 中文版 https://appium.io/docs/zh/latest/ (部分内容完成)
- 安装方法
npm i --location=global appium
安装
- 依赖工具 npm 安装
- 官网参考 1 https://nodejs.org/en/about/previous-releases
- 官网参考 2 https://nodejs.org/en/download/package-manager
- Demo: 打开文档具体说明
启动运行
- appium 2.x 启动命令 (兼容 1.x driver url http://127.0.0.1:4723/wd/hub )
appium --base-path=/wd/hub - 启动效果
[Appium] Welcome to Appium v2.11.2 (REV ***xxx***) [Appium] Non-default server args: [Appium] { basePath: '/wd/hub' }
Appium 2.x 命令
- 列出当前已安装的 driver 驱动:
appium driver list~ appium driver list ✔ Listing available drivers - uiautomator2@2.25.0 [installed (npm)] - xcuitest@7.24.11 [installed (npm)] - espresso [not installed] - mac2 [not installed] - windows [not installed] - safari [not installed] - gecko [not installed] - chromium [not installed] - Demo: 命令演示
Appium 2.x 命令
- 注意: appium 2.x 中的 driver 驱动需要单独安装,默认 appium 2.x 是不带任何 client driver 驱动
- 安装 driver 驱动:
appium driver install <驱动名称>~ appium driver install gecko ✔ Checking if 'appium-geckodriver' is compatible ✔ Installing 'gecko' using NPM install spec 'appium-geckodriver' ℹ Driver gecko@1.3.9 successfully installed - automationName: Gecko - platformNames: ["Linux","Mac","Android","Windows"] - Demo: 命令演示
Appium 2.x 命令
- 改变 appium 的运行端口:
appium server --base-path /wd/hub --port <端口号>~ appium server --base-path /wd/hub --port 8080 [Appium] Welcome to Appium v2.11.2 (REV 8debf39f24954d1006df6bac2dbef09d1ea68bc5) [Appium] Non-default server args: [Appium] { basePath: '/wd/hub', port: 8080 } - Demo: 命令演示
本章小结
- Appium 版本 1.x & 2.x
- 安装方法不同
- 目前的 1.x 主要针对存量需求
- 2.x 对应的各种命令
课程安排
-
Appium 介绍
-
Appium 1.x 与 2.x
- Appium Desired Capability
- Appium Inspector 用法
- App 安装与启动
- Appium UI 自动化测试实现
3. Appium Desired Capability
Desired Cap
- Appium 中的 Desired Capabilities 是一组键值对
- 用于向告诉 Appium 服务器如何设置测试环境
- 这些设置包括平台名称、版本、设备名称等
- 这些配置对于控制 Appium 的行为至关重要
- 有些配置 iOS 与 Android 不通用,不同平台不通用
Desired Cap 常用参数
- platformName: 指定要测试的移动操作系统平台,如 iOS 或 Android
- platformVersion: 指定移动操作系统的版本,例如 11.0 或 10.0
- deviceName: 指定要使用的设备类型或仿真器名称,如 iPhone 7 或 Samsung Galaxy Note10
- automationName: 指定使用的自动化引擎,例如 XCUITest、UiAutomator2 等
- appPackage 和 appActivity: Android 配置,分别指定要测试的包名和要启动的活动名称
- bundleId: iOS 配置,指需要启动的 app bundle ID
Desired Cap 常用参数
- 对于 appium 2.x, 大部分 Desired Cap 配置需要添加 appium: 前缀 (支持 W3C WebDriver 协议)
- 部分参数为了兼容 1.x 可以不加 appium:
- 比如
{ "platformName": "iOS", "appium:deviceName": "iPhone 11", "appium:bundleId": "com.xxx.xxx", "appium:automationName": "XCUITest", "appium:platformVersion": "17.4", "udid": "xxx-xxx-xxx-xxx" }
Desired Cap 常用参数
- 随着 Appium 版本的更新,某些 capabilities 可能会发生变化或被弃用
- 使用时应参考最新的 Appium 文档
- 官方文档 https://appium.io/docs/en/2.0/guides/caps/
- Demo 如何参考 desired caps 文档
本章小结
- Desired Caps 的用途 - 让 appium server 知晓 client 端配置
- appium 2.x 中大部分参数需要添加“appium:” 前缀
- 有些参数在不同的平台上是不通用的
课程安排
-
Appium 介绍
-
Appium 1.x 与 2.x
-
Appium Desired Capability
- Appium Inspector 用法
- App 安装与启动
- Appium UI 自动化测试实现
4. Appium Inspector 用法
介绍
- Appium Inspector 提供了对应用程序进行视觉检查的功能
- 通过 Appium Inspector 可以查看元素的详细信息
- 抓取页面元素的 ID, Name, XPath 等

安装与运行
- 从 Appium Inspector 官方站点下载和安装
- 官网 https://github.com/appium/appium-inspector/releases
- 下载完成之后可以安装,双击图标运行
- 用法演示: Demo
元素抓取与操作验证
- 启动 Appium Server
- 打开 Appium Inspector
- 输入正确的 Desired Caps 配置
- 点击 Start Session
- 找到需要抓取的元素
- 验证元素的信息的正确性,完成输入、单击等操作
- Demo
本章小结
- Appium Inspector 用途
- 下载与安装
- 配置 Desired Caps, 启动 Session
- 抓取页面元素
- 验证页面操作
课程安排
-
Appium 介绍
-
Appium 1.x 与 2.x
-
Appium Desired Capability
-
Appium Inspector 用法
- App 安装与启动
- Appium UI 自动化测试实现
5. App 安装与启动
环境配置
- Android SDK
- Android Studio
- 模拟器或者真机
- 参考文档 https://appium.tutorial.hogwarts.ceshiren.com/app_auto_testing/v2/L1/tutorial/Appium%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/
- Demo
app 安装
- 训练项目 https://gitee.com/11547299/iappium
- app 位置 iAppium/apps/ContactManager.apk
- 安装命令
adb install <apk file path>
app 启动
- 启动命令
adb shell am start -n <package name>/<activity name> - Demo
本章小结
- App 自动化测试运行环境
- 安装 app
- 启动 app
课程安排
-
Appium 介绍
-
Appium 1.x 与 2.x
-
Appium Desired Capability
-
Appium Inspector 用法
-
App 安装与启动
- Appium UI 自动化测试实现
6. Appium UI 自动化测试实现
获取设备基础参数
- getAndroidDeviceId()
- getDeviceRelease()
- Demo: 代码讲解与运行

启动 app
- launchApp()
- Demo: 代码讲解与运行
App UI 自动化测试实现
- 项目结构: Maven
- 自动化驱动: JUnit 5
- Appium 兼容版本 1.x , 2.x
- Demo: 代码讲解与运行
本章小结
- 获取设备参数
- 控制 app 启动
- Appium UI 自动化测试实现
课程安排
-
Appium 介绍
-
Appium 1.x 与 2.x
-
Appium Desired Capability
-
Appium Inspector 用法
-
App 安装与启动
-
Appium UI 自动化测试实现
课程总结
- Appium 1.x 与 2.x
- Desired Caps
- Appium Inspector
- Appium UI 自动化测试运行环境
- 使用 Java 代码获取设备信息
- Appium UI 自动化测试实现
课后作业
- 题 1 安装 appium 2.x
- 题 2 配置 Android 自动化测试运行环境
- 题 3 使用 Appium Inspector 抓取测试 app: Contact Manager 元素
- 题 4 编写 Java 代码实现对设备信息的获取与 android app 启动
- 题 5 编写 Java 代码实现 App UI 自动化测试