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

Appium 入门操作指南

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


1. Appium 环境搭建

(1) 安装 Node.js

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

  • 官网下载:Node.js 官网

  • 安装后验证:

    node -v
    npm -v

(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 信息,常见参数:

参数说明
platformNameAndroid / iOS
deviceName设备名称(adb devices 查看)
appPackageAndroid App 包名
appActivityAndroid 启动 Activity
appiOS/Android App 安装包路径
automationNameUiAutomator2 (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 应用了!


http://www.kler.cn/a/612824.html

相关文章:

  • 地理信息可视化技术大全【WebGIS 技术文档大全】
  • Nginx多域名HTTPS配置全攻略:从证书生成到客户端安装
  • 【矩阵快速幂】P2100 凌乱的地下室|省选-
  • UE4学习笔记 FPS游戏制作31 显示计分板
  • 31天Python入门——第16天:模块与库详解
  • 正则表达式-笔记
  • ArayTS:一个功能强大的 TypeScript 工具库
  • Docker 快速入门指南
  • 路由器、交换机、防火墙、服务器、负载均衡在网络中作用
  • 第三课:Stable Diffusion图生图入门及应用
  • d2025328
  • OSPF邻居状态机
  • Java-servlet(十)使用过滤器,请求调度程序和Servlet线程(附带图谱表格更好对比理解)
  • AIGC-评论金句引流回复创作智能体完整指令(DeepSeek,豆包,千问,Kimi,GPT)
  • vueRouter的hash模式跟history的区别
  • 鸿蒙篇:vp、fp、px
  • Java 大视界 -- Java 大数据在智慧港口集装箱调度与物流效率提升中的应用创新(159)
  • Typora使用Gitee作为图床
  • Linux常见使用场景
  • CMake 自己写 findmodule