Appium 简介

Appium 是一个开源的移动应用自动化测试框架,用于测试原生应用(native)、混合应用(hybrid)和移动网页应用(mobile web)。它支持 iOS、Android 和 Windows 平台。

 https://www.bilibili.com/video/BV1R93szkEhi/?

App自动化测试:App测试Appium+UiAutomator2技巧、实战项目

核心特点

  1. 跨平台:同一套 API 可用于 iOS 和 Android

  2. 多语言支持:支持多种编程语言(Java, Python, Ruby, JavaScript, C#等)

  3. 开源免费:完全开源,无需授权费用

  4. 不依赖应用代码:不需要修改或重新编译应用

  5. 支持多种应用类型:原生、混合和移动网页应用

工作原理

Appium 采用客户端-服务器架构:

  • Appium 服务器:基于 Node.js 实现,负责与设备通信

  • 客户端库:各种语言的客户端库(如 Python 的 Appium-Python-Client)

  • 底层驱动

    • iOS: 使用 XCUITest(Apple 官方框架)

    • Android: 使用 UIAutomator2/Espresso(Google 官方框架)

基本使用流程

  1. 安装 Appium 服务器(npm install -g appium)

  2. 安装客户端库(如 Python: pip install Appium-Python-Client)

  3. 编写测试脚本

  4. 启动 Appium 服务器

  5. 运行测试脚本

简单 Python 示例

python

from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'platformVersion': '11',
    'deviceName': 'emulator-5554',
    'app': '/path/to/your/app.apk',
    'automationName': 'UiAutomator2'
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 执行测试操作
element = driver.find_element_by_id("com.example:id/button")
element.click()

driver.quit()

主要功能

  1. 元素定位:支持 ID、XPath、类名等多种定位方式

  2. 手势操作:点击、滑动、拖拽、缩放等

  3. 上下文切换:在原生和 WebView 之间切换

  4. 设备控制:旋转屏幕、返回键、主页键等

  5. 并行测试:支持多设备同时测试

适用场景

  1. 移动应用 UI 自动化测试

  2. 回归测试

  3. 兼容性测试

  4. 功能测试

  5. 自动化演示

Appium 是移动应用自动化测试的主流选择之一,特别适合需要跨平台支持的测试场景。

是app自动化测试用的吗

是的,Appium 是专门用于 移动应用(App)自动化测试 的开源框架,支持 Android、iOS 和 Windows 平台上的原生应用(Native App)、混合应用(Hybrid App)和移动网页应用(Mobile Web App)的自动化测试。


Appium 的主要用途

  1. UI 自动化测试

    • 模拟用户操作(点击、滑动、输入等)

    • 验证界面元素是否正确显示

    • 检查交互逻辑是否符合预期

  2. 功能测试

    • 测试登录、注册、支付等核心业务流程

    • 验证 API 与 UI 的交互是否正确

  3. 回归测试

    • 每次发布新版本时,自动运行测试用例,确保旧功能不受影响

  4. 兼容性测试

    • 在不同设备、不同系统版本上运行测试,确保 App 兼容性

  5. 性能测试(结合其他工具)

    • 监测 App 启动时间、内存占用、CPU 使用率等


Appium 的核心优势

✅ 跨平台:同一套代码可测试 Android 和 iOS(减少维护成本)
✅ 支持多种语言:Python、Java、JavaScript、Ruby、C# 等
✅ 无需修改 App 代码:直接测试已安装的 App(无需重新编译)
✅ 支持真机和模拟器:可在真实设备或 Android 模拟器/iOS 模拟器上运行
✅ 丰富的定位方式:支持 ID、XPath、Accessibility ID、Class Name 等


Appium 的典型工作流程

  1. 启动 Appium 服务器(基于 Node.js)

  2. 编写测试脚本(如 Python + Appium-Python-Client

  3. 连接设备(真机/模拟器)

  4. 运行测试,生成报告

Python 示例(测试 Android App)

python

from appium import webdriver

# 设备配置
desired_caps = {
    "platformName": "Android",
    "platformVersion": "13",
    "deviceName": "Pixel 6",
    "app": "/path/to/your/app.apk",
    "automationName": "UiAutomator2"
}

# 连接 Appium 服务器
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)

# 测试操作
search_box = driver.find_element("id", "com.example:id/search_box")
search_box.send_keys("Hello Appium!")
search_box.click()

# 关闭会话
driver.quit()

Appium vs 其他移动自动化工具

工具 支持平台 语言支持 是否需要源码 适用场景
Appium Android, iOS Python, Java, JS, C# ❌ 不需要 跨平台 UI 自动化
Espresso (Android) Android Java, Kotlin ✅ 需要 Android 原生测试
XCUITest (iOS) iOS Swift, Obj-C ✅ 需要 iOS 原生测试
Selendroid Android Java ❌ 不需要 旧版 Android 兼容测试
Calabash Android, iOS Ruby ✅ 需要 跨平台 BDD 测试

适用人群

  • 测试工程师:做 App 的 UI 自动化测试

  • 开发人员:在 CI/CD 流程中集成自动化测试

  • DevOps:搭建自动化测试平台,提高发布质量

什么时候选择 Appium?

✔ 需要同时测试 Android 和 iOS
✔ 不想依赖 App 源码(测试已发布的 APK/IPA)
✔ 希望用 Python/Java/JS 等语言编写测试脚本

什么时候不推荐 Appium?

❌ 需要极高的执行速度(原生框架如 Espresso/XCUITest 更快)
❌ 测试游戏(推荐 Unity Test Framework 或 Appium + OpenCV)

你可能感兴趣的:(appium,测试工具,自动化测试)