Appium 入门操作指南

发布于:2025-03-31 ⋅ 阅读:(27) ⋅ 点赞:(0)

Appium 是一个开源的移动端自动化测试框架,支持 Android 和 iOS 原生、混合和 Web 应用测试。它基于 Selenium WebDriver 协议扩展,可以使用多种编程语言(Python、Java、JavaScript 等)编写测试脚本。


1. Appium 环境搭建

(1) 安装 Node.js

Appium 是基于 Node.js 开发的,需要先安装 Node.js:

(2) 安装 Appium

方式 1:通过 npm 安装(推荐)

npm install -g appium

安装完成后,运行:

appium -v  # 查看版本
方式 2:安装 Appium Desktop(GUI 版本)
  • 下载地址:Appium Desktop

  • 适合新手可视化操作,但运行效率较低。

(3) 安装 Appium 客户端库

根据你的编程语言选择对应的客户端库:

  • Python

    pip install Appium-Python-Client

  • Java

    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>8.3.0</version>
    </dependency>

    运行 HTML

(4) 安装移动端依赖

Android 环境
  1. 安装 Android Studio(含 SDK):

    • Android Studio 官网

    • 配置 ANDROID_HOME 环境变量:

      export ANDROID_HOME=/Users/yourname/Library/Android/sdk
      export PATH=$PATH:$ANDROID_HOME/platform-tools
      export PATH=$PATH:$ANDROID_HOME/tools

  2. 安装 adb(Android Debug Bridge):

    adb devices  # 查看连接的设备

  3. 安装 uiautomator2(Android UI 自动化引擎):

    npm install -g appium-uiautomator2-driver

iOS 环境(需 Mac)
  1. 安装 Xcode(App Store 下载)

  2. 安装 Carthage(依赖管理工具):

    brew install carthage

  3. 安装 WebDriverAgent

    npm install -g appium-webdriveragent


2. 第一个 Appium 测试脚本

Python 示例(Android 测试)

from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

# Appium 服务器地址
APPIUM_SERVER = 'http://127.0.0.1:4723'

# 设备配置
desired_caps = {
    'platformName': 'Android',  # 平台(Android/iOS)
    'deviceName': 'Pixel_4',    # 设备名称(adb devices 查看)
    'appPackage': 'com.android.calculator2',  # 被测 App 包名
    'appActivity': '.Calculator',             # 启动 Activity
    'automationName': 'UiAutomator2',        # Android 自动化引擎
}

# 连接 Appium 服务器
driver = webdriver.Remote(APPIUM_SERVER, desired_caps)

# 定位计算器按钮并点击
driver.find_element(AppiumBy.ID, 'com.android.calculator2:id/digit_5').click()
driver.find_element(AppiumBy.ID, 'com.android.calculator2:id/op_add').click()
driver.find_element(AppiumBy.ID, 'com.android.calculator2:id/digit_3').click()
driver.find_element(AppiumBy.ID, 'com.android.calculator2:id/eq').click()

# 获取计算结果
result = driver.find_element(AppiumBy.ID, 'com.android.calculator2:id/result').text
print("计算结果:", result)

# 关闭会话
driver.quit()

Java 示例(iOS 测试)

import io.appium.java_client.ios.IOSDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;

public class FirstAppiumTest {
    public static void main(String[] args) throws Exception {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("platformName", "iOS");
        caps.setCapability("deviceName", "iPhone 13");
        caps.setCapability("app", "/path/to/your/app.app");
        caps.setCapability("automationName", "XCUITest");

        IOSDriver driver = new IOSDriver(new URL("http://127.0.0.1:4723"), caps);
        
        // 测试操作...
        driver.findElement(AppiumBy.accessibilityId("LoginButton")).click();
        
        driver.quit();
    }
}

3. Appium 核心概念

(1) Desired Capabilities

用于配置设备信息和 App 信息,常见参数:

参数 说明
platformName Android / iOS
deviceName 设备名称(adb devices 查看)
appPackage Android App 包名
appActivity Android 启动 Activity
app iOS/Android App 安装包路径
automationName UiAutomator2 (Android) / XCUITest (iOS)

(2) 元素定位方式

  • Android

    • AppiumBy.IDresource-id

    • AppiumBy.ACCESSIBILITY_IDcontent-desc

    • AppiumBy.XPATH

  • iOS

    • AppiumBy.ACCESSIBILITY_ID(推荐)

    • AppiumBy.XPATH

(3) 常用操作

  • click():点击元素

  • send_keys("text"):输入文本

  • swipe():滑动屏幕

  • back():返回键

  • press_keycode(4)(Android 按键码)


4. Appium 进阶

(1) 使用 Appium Inspector

类似 Selenium IDE,用于查看 App 元素:

  • 下载 Appium Inspector

  • 连接设备后,输入 Desired Capabilities 进行元素定位。

(2) 并行测试(Appium Grid)

# 多设备配置
devices = [
    {'deviceName': 'Pixel_4', 'udid': 'emulator-5554'},
    {'deviceName': 'iPhone_13', 'udid': 'A1B2C3D4'}
]

for device in devices:
    driver = webdriver.Remote(APPIUM_SERVER, device)
    # 测试逻辑...

(3) 结合 Pytest 框架

import pytest

@pytest.fixture
def appium_driver():
    driver = webdriver.Remote(APPIUM_SERVER, desired_caps)
    yield driver
    driver.quit()

def test_calculator(appium_driver):
    appium_driver.find_element(AppiumBy.ID, 'digit_1').click()
    assert appium_driver.find_element(AppiumBy.ID, 'result').text == "1"

5. 学习资源

  • 官方文档Appium Docs

  • 书籍

    • 《移动App测试实战》

    • 《Appium 自动化测试实战》

  • 在线课程

    • Udemy: "Appium Mobile Automation Testing"

    • B站/YouTube 搜索 "Appium 教程"


总结

  1. 安装 Node.js + Appium

  2. 配置 Android/iOS 环境

  3. 编写 Desired Capabilities

  4. 使用 AppiumBy 定位元素

  5. 结合 Pytest/TestNG 管理测试

现在你可以开始自动化测试 Android 和 iOS 应用了!