appium

发布于:2025-07-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到