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

appium

appium介绍

Appium 是一款开源、跨平台的移动应用自动化测试框架,支持 Android、iOS 等平台的本地应用、混合应用和移动网页应用的自动化测试。

移动设备类型

原生应用 native app:为特定移动设备或平台开发的应用程序(如Android, iOS, Windows)。

移动web应用 mobile web app:通过移动浏览器访问应用程序,例如Safari, Chrome。主要使用Html5, JavaScript等技术开发

混合应用 Hybrid app:主要使用Html5, JavaScript, CSS开发,但嵌入在App运行,从而感觉它像原生应用。

Appium支持以上三种类型的自动化测试。

核心特性

  1. 跨平台支持
    使用相同 API 编写测试脚本,兼容 Android 和 iOS 平台,实现代码复用。
  2. 多语言兼容性
    支持 Java、Python、JavaScript 等主流编程语言,降低学习成本。
  3. 应用类型全覆盖
    支持原生应用、混合应用(Hybrid App)和移动网页应用(H5)的自动化测试。
  4. 无需修改被测应用
    直接对已有应用进行测试,无需重新编译或修改代码。

工作原理

1.客户端-服务器架构

# Python 示例:初始化驱动
from appium import webdriver
desired_caps = {'platformName': 'Android','deviceName': 'emulator-5554','app': '/path/to/app.apk'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
  • 客户端‌:测试脚本通过 WebDriver 协议向 Appium Server 发送 HTTP 请求。
  • 服务器‌:监听 4723 端口,将客户端命令转换为平台特有指令(如 Android 的 UIAutomator、iOS 的 XCUITest)。

XCUITest是苹果公司于iOS推出的自动化框架,appium内部使用Facebook公司的WebDriverAgent项目支持XCUITest,appium使用Apple的UIAutomation库,UIAutomation库与移动设备或模拟器内运行的 bootstrap.js进行通信,执行由appium客户端收到的命令。

UIAutomator2是基于Android的自动化框架,允许用户构建和运行UI测试。appium使用Google 公司的UIAutomator2在真实设备或模拟器上执行命令。 appium 使用appium-android-bootstrap模块与UIAutomator2进行交互。它允许将命令发送到设备,使用Android的UIAutomator2测试框架在真实设备上执行命令。当appium 客户端请求创建新的AndroidDriver会话时,appium客户端会将所需的功能传递给appium节点服务器。首先,UIAutomator2驱动程序模块创建会话。然后,在连接的 Android 设备上安装 UIAutomator2 服务器apk。接着启动Netty 服务器。在Netty服务启动后,UIAutomator2服务器在设备上侦听请求并做出响应

2‌.设备端执行

  • Android:通过 bootstrap.jar 监听 4724 端口执行 UIAutomator 命令。
  • iOS:通过 XCTest 驱动操作

appium client

appium Client支持多种语言/框架,它针对主流的编程语言分别开发了相应的 appium测试库,我们可以选择自己熟悉的语言或框架来编写appium 测试脚本。

python, java, ruby, javascript等。

appium server

appium 需要在PC上启动一个Server,监听客户端自动化测试的运行,并将请求发送到对应的移动设备或模拟器中运行。
appium Server 支持macOS 和 Windows两大平台。我们可以在不同的平台编写并运行 appium 自动化测试。需要特别说明的是,appiumServer项目已经停止更新,由appium Desktop替代。

移动设备 

移动设备用于运行appium自动化测试的环境,既可以是一台连接到PC的手机,也可以是在 PC 上运行的iOS 模拟器或Android模拟器。

环境配置要点

基础依赖

  • JDK 1.8+、Node.js、Android SDK(Android 测试)或 Xcode(iOS 测试)。
  • 安装命令:npm install -g appium 和 pip install Appium-Python-Client(Python 客户端)。
  • Android Studio

我们既可以通过Android手机连接PC来运行appium自动化测试,也可以通过Android SDK 创建Android模拟器来运行appium自动化测试。这里需要安装Android SDK,因为它提供了一些必要的工具,如 adb可以用于连接 PC与Android手机/模拟器, UIAutomatorViewer可以帮助定位Android元素。

Android SDK(Software Development Kit,软件开发工具包)提供了AndroidAPI库和开发工具构建,可用来测试和调试应用程序。简单来讲,Android SDK可以看作用于开发和运行 Android应用的一个软件。AndroidSDK已经不再提供完整的独立的下载,需要通过Android Studio 安装。
Android Studio是Android应用的集成开发工具,用于开发与调试Android应用,是 Google 公司在 IntelliJ IDEA开源版本基础上开发的。
在安装Android开发环境之前,需要先安装Java开发环境, Android Studio 下载地址:https://developer.android.google.cn/studio。

  • Xcode

设备连接

  • Android 需开启 USB 调试模式,通过 adb devices 验证连接。
  • iOS 需配置开发者证书和设备 UDID。

关键参数配置

{"platformName": "Android",  // 平台类型"platformVersion": "10.0",  // 系统版本"deviceName": "emulator",   // 设备标识"appPackage": "com.example.app",  // 应用包名"appActivity": ".MainActivity"    // 启动页
}

包名和启动页可通过 adb 命令获取:adb shell dumpsys activity | grep mFocusedActivity

http://www.dtcms.com/a/284923.html

相关文章:

  • bm-info-window百度地图去掉信息窗口影子
  • npm 和 npx 区别对比
  • 查看一个目录下的文件数量
  • 访问网页的全过程笔记
  • 移动安全工具-spd_dump
  • 聚类的可视化选择:PCA / t-SNE丨TomatoSCI分析日记
  • PyTorch边界感知上下文神经网络BA-Net在医学图像分割中的应用
  • Springboot绑定Date类型时出现日期转换异常问题
  • Springboot儿童摄影服务91f0v(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 【AI前沿】英伟达CEO黄仁勋ComputeX演讲2025|Token是AI时代的“新货币”
  • 时序数据库选型指南︰为什么IoTDB成为物联网场景首选?
  • 浅谈自动化设计最常用的三款软件catia,eplan,autocad
  • 2025前端与AI结合的最新趋势与应用场景
  • uni-app项目配置通用链接拉起ios应用android应用
  • Redis学习-03重要文件及作用、Redis 命令行客户端
  • 项目--五子棋(模块实现)
  • MATLAB电力系统暂态稳定分析
  • 掌握Git核心技巧:深入理解.gitignore文件的使用
  • 【Bluedroid】btif_a2dp_sink_init 全流程源码解析
  • 25.7.16 25.7.17 每日一题——找出有效子序列的最大长度 I/II
  • NumPy 数组存储字符串的方法
  • 「Linux命令基础」Shell常见命令
  • Qwen3-8B Dify RAG环境搭建
  • 从C#6天学会Python:速通基础语法(第一天)
  • 【面板数据】企业劳动收入份额数据集-含代码及原始数据(2007-2022年)
  • 模板方法设计模式
  • JUnit5 实操
  • 杭州卓健信息科技有限公司 Java 面经
  • CPP学习之list使用及模拟实现
  • 【39】MFC入门到精通——C++ /MFC操作文件行(读取,删除,修改指定行)