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)

相关推荐
测试开发Kevin20 小时前
详解grafana k6 中stage的核心概念与作用
测试工具·压力测试·grafana
天才测试猿21 小时前
接口自动化测试难点:数据库验证解决方案
自动化测试·软件测试·数据库·python·测试工具·职场和发展·接口测试
Java方文山1 天前
Appium+Python 实现移动应用自动化测试:从基础到实战
appium
Mr_Xuhhh2 天前
HTTPS 协议原理
网络·网络协议·测试工具·http·https
测试开发Kevin3 天前
详解k6中的核心概念——场景(Scenarios)
测试工具·压力测试
中草药z4 天前
【测试】Bug+设计测试用例
功能测试·测试工具·测试用例·bug·压力测试·测试
qq_332539454 天前
Python自动化测试实战:reCAPTCHA V3绕过技术深度解析
自动化测试·python·web安全·验证码破解·recaptcha
无职转生真好看5 天前
Selenium动态元素定位
selenium·测试工具
ACGkaka_5 天前
Postman 如何设置Cookie
测试工具·postman