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、iOSWindows 平台上的原生应用(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)

相关推荐
卓码软件测评1 天前
使用Wireshark测试手机APP网络通信完整指南
网络·功能测试·测试工具·智能手机·wireshark·测试用例·压力测试
天才测试猿1 天前
黑盒测试用例的四种设计方法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
测试界清流1 天前
接口测试及常用接口测试工具
测试工具
胜天半月子1 天前
性能测试 | 性能测试工具Jmeter的认识和基础使用
测试工具·jmeter·性能测试
安冬的码畜日常1 天前
【JUnit实战3_03】第二章:探索 JUnit 的核心功能(二)
测试工具·junit·单元测试·junit 5
我的xiaodoujiao2 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 19--测试框架Pytest基础 3--前后置操作应用
python·学习·测试工具·pytest
程序员三藏2 天前
Jmeter接口测试与压力测试
自动化测试·软件测试·python·测试工具·jmeter·接口测试·压力测试
桃子不淘气2 天前
2:测试平台之DB构建
测试工具