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 复制代码
# 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 appiumpip 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。

关键参数配置

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

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

相关推荐
阿祖_in_coding2 天前
混合App(Hybrid App)自动化测试理解
appium
returnthem10 天前
安装Appium
appium
seabirdssss15 天前
Appium 在小米平板上的安装受限与闪退排查
android·appium·电脑
小陈的进阶之路18 天前
Selenium 滑动 vs Appium 滑动
python·selenium·测试工具·appium
小陈的进阶之路19 天前
Appium 自动化测试笔记
笔记·appium
linglan42821 天前
APPium环境配置
appium·自动化
lifewange1 个月前
Appium是什么
appium·压力测试
柚子+1 个月前
Appium+python+雷电模拟器自动化测试入门
数据库·python·appium
@Aurora.1 个月前
【GUI自动化测试】--基于QQ音乐项目的GUI自动化测试
appium