当前位置: 首页 > ds >正文

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 webdriverdesired_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 其他移动自动化工具

工具支持平台语言支持是否需要源码适用场景
AppiumAndroid, iOSPython, Java, JS, C#❌ 不需要跨平台 UI 自动化
Espresso (Android)AndroidJava, Kotlin✅ 需要Android 原生测试
XCUITest (iOS)iOSSwift, Obj-C✅ 需要iOS 原生测试
SelendroidAndroidJava❌ 不需要旧版 Android 兼容测试
CalabashAndroid, iOSRuby✅ 需要跨平台 BDD 测试

适用人群

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

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

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

什么时候选择 Appium?

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

什么时候不推荐 Appium?

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

http://www.xdnf.cn/news/14940.html

相关文章:

  • 大语言模型:是逐字生成还是一次多词?
  • GO Web 框架 Gin 完全解析与实践
  • 【NLP第二期中文分词技术:规则、统计与混合方法全解】
  • 笨方法学python-习题12
  • Disruptor架构哲学
  • 结构体实战:用Rust编写矩形面积计算器
  • MySQL 中 InnoDB 存储引擎与 MyISAM 存储引擎的区别是什么?
  • 8.Docker镜像讲解
  • 阿里巴巴 Qwen 系列大模型发展时间线与主要特性
  • 数字图像处理学习笔记
  • C#.Net筑基-优雅LINQ的查询艺术
  • 算法-每日一题(DAY12)最长和谐子序列
  • TypeScript 安装使用教程
  • 电子面单系统开发全解析
  • 深度学习进阶:自然语言处理的推荐点评
  • 杭州来未来科技 Java 实习面经
  • STM32——代码开发顺序
  • 模型部署与推理--利用python版本onnxruntime模型部署与推理
  • 【仿muduo库实现并发服务器】Acceptor模块
  • 微信小程序21~30
  • grom使用mysql快速上手
  • nginx配置websocket
  • 如何在电脑上完全抹去历史记录
  • Ubuntu 20.04 下 OpenVINO 2024 安装与配置
  • 与后端现场联调mock数据
  • 内网ubuntu系统安装mysql
  • 直播 APP 开发需要多少成本
  • SpringBoot -- 自动配置原理
  • 回写缓存为何需要脏位?
  • 【MySQL基础】MySQL索引全面解析:从原理到实践