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

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 应用了!

相关文章:

  • 无耳 Solon v3.1.1 发布(兼容 Java 24)
  • 3-2RYU控制器应用程序开发(一)
  • 如何从零构建Spring Boot Starter并实现整合
  • 【c++深入系列】:类与对象详解(上)
  • 解锁Spring Boot异步编程:让你的应用“飞“起来!
  • 【MLP-BEV(10)】BEVPooling V1和BEVPooling V2的view_transformer,进行鱼眼图片实践
  • 跟李沐学AI:DALL·E 2 论文精读
  • 【位运算】371. 两整数之和
  • DataGear 企业版 1.4.0 发布,数据可视化分析平台
  • 飞牛NAS本地部署小雅Alist结合内网穿透实现跨地域远程在线访问观影
  • MySQL8.0 binlog不清理导致使用磁盘空间过大问题
  • V8的内存分代方法
  • 作业14 (2023-05-22_const修饰指针)
  • 基于SpringBoot+Vue3实现的宠物领养管理平台功能十六
  • 基于云服务器的数仓搭建-服务器配置
  • FPGA学习篇——Verilog学习之寄存器的实现
  • 第九章:优化查找和排序_《C++性能优化指南》notes
  • DPDK介绍
  • 性能比拼: Rust vs C++
  • 【Boost搜索引擎】上
  • 网站站内优化怎么做/seo做得比较好的公司
  • 自己做网站卖货多少钱/快速排名seo
  • 科技局网站查新怎么做/营销战略包括哪些方面
  • 做网站的 深圳/新网站排名优化怎么做
  • 怎么用路由器做网站/衡阳seo快速排名
  • 深圳国内网站制作哪家快/上海全网营销推广