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)

相关推荐
XINERTEL5 小时前
视频卡顿花屏?专业视频质量评估测试让画质从“凭感觉”到“数据说话”
网络·测试工具·音视频·丢包
aovenus10 小时前
使用Midscene.js和Appium开展移动应用自动化的对比
appium·midscene.js
Luminbox紫创测控10 小时前
氙弧老化测试全参数解析:滤镜类型、辐照度与黑标温度设定
人工智能·测试工具·安全性测试·测试标准
one day32111 小时前
appium
appium
麦科信仪器11 小时前
一文读懂麦科信AHO1系列高分辨率汽车示波器
测试工具
程序员小远1 天前
系统性能指标全解析
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
@我们的天空1 天前
Claude Code + GLM-5 深度赋能测试:开发 8 大 Skill 构建 AI 测试助手集群
人工智能·python·测试工具·自动化·ai编程
测试开发-学习笔记1 天前
从0开始搭建app的自动化(二)-appium+python
python·appium·自动化