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)

相关推荐
2501_924064119 小时前
2025年跨端云真机测试平台深度测评:XR与折叠屏时代的兼容性之战
测试工具·移动端自动化测试·自动化测试脚本
Small black human18 小时前
HTTP-Postman的安装及其使用
测试工具·postman
吴free1 天前
mac电脑wireshark快速实现http接口抓包
网络·测试工具·http·wireshark
DeamoTech1 天前
ESCADA
物联网·测试工具
旷世奇才李先生2 天前
Selenium 安装使用教程
selenium·测试工具
百度测试开发2 天前
【软件测试】银行项目-转账功能测试点(详全)
自动化测试·软件测试·功能测试·软件测试工程师·接口测试·软件测试面试题·银行测试
amazinging2 天前
北京-4年功能测试2年空窗-报培训班学测开-第四十一天
python·学习·appium
amazinging2 天前
北京-4年功能测试2年空窗-报培训班学测开-第三十九天
python·学习·appium
巴里巴气2 天前
对selenium进行浏览器和驱动进行配置Windows | Linux
selenium·测试工具