当前位置: 首页 > 测试知识 > Appium怎么用?零基础入门教程
Appium怎么用?零基础入门教程
2026-04-17 作者cwb 浏览次数74

快速上手Appium进行移动端自动化测试主要分为三步:安装工具、学会定位App里的元素、编写并运行第一个脚本。


上手指南:


准备工作:安装工具:需要安装 Node.js,然后通过npm安装Appium。同时,Appium依赖于Java,需要安装并配置JDK。如果测试Android,还需安装Android SDK,并为测试iOS准备Xcode。想看到App里的元素,推荐安装 Appium Inspector。要编写脚本只需通过pip或 npm等包管理器安装对应编程语言的Appium客户端库即可。


学会定位元素:编写测试重点是告诉Appium你想操作屏幕上的哪个按钮或输入框,这就是元素定位。优先级是:ID > accessibility id > XPath。

运行你的第一个脚本:编写一个简单的测试脚本来体验完整流程。基本步骤包括:导入 Appium 库、配置连接参数 (Desired Capabilities)、连接 Appium Server、执行操作 (如点击)、最后退出。


具体操作细节和调试方法。

第一步:环境搭建 (以Android+Python为例)

环境没搭好,后面就无法进行。我们以最常见的组合:在Windows/macOS上测试Android应用,并用Python编写脚本为例,需要安装以下几个组件:

安装 Node.js 和 Appium 服务器:

Appium Server 是一个Node.js程序,它接收测试脚本的指令,并翻译给手机去执行。


从 Node.js官网 下载并安装 LTS 版本。

安装完成后,打开“命令提示符” (Windows) 或“终端” (macOS/Linux),输入以下命令来全局安装最新版的 Appium 2.x:


bash

npm install -g appium


接着,安装用于驱动 Android 设备的驱动程序:


bash

appium driver install uiautomator2


安装 Java Development Kit (JDK):

Appium 的底层依赖 Java 环境。

推荐从 Oracle官网 下载并安装 JDK 21 或更高版本。


安装后需要配置环境变量:

Windows: 在系统属性 -> 环境变量中,新建一个名为 JAVA_HOME 的系统变量,其值为你的 JDK 安装途径(如 C:\Program Files\Java\jdk-21)。然后编辑 Path 变量,新建一条 %JAVA_HOME%\bin。


macOS/Linux: 编辑你的 ~/.bash_profile 或 ~/.zshrc 文件,添加以下两行:


bash

export JAVA_HOME="你的JDK安装途径"

export PATH=$JAVA_HOME/bin:$PATH


保存后,执行 source ~/.bash_profile (或 source ~/.zshrc) 使配置生效。

安装 Android SDK 并配置设备:

安装 Android Studio:这是获取 Android SDK 最简单的方式。从 Android Studio官网 下载安装。


配置 SDK 环境变量:

安装完成后,找到 Android SDK 的安装途径(可在 Android Studio 的 SDK Manager 窗口顶部看到,一般记为 ANDROID_HOME)。

同样,在系统环境变量中,新建一个名为 ANDROID_HOME 的变量,值为SDK途径。

编辑Path变量,添加 %ANDROID_HOME%\platform-tools 和 %ANDROID_HOME%\tools。


准备测试设备可以用真机或模拟器。

真机:用 USB 线连接电脑和手机,在手机的“开发者选项”中,开启“USB 调试”。

模拟器:在 Android Studio 的 AVD Manager 中创建一个虚拟设备并启动。

测试连接:打开终端,输入 adb devices。如果看到设备列表中有你的设备,并且状态是 device,就说明连接成功了。


安装 Appium 客户端库 (Python):

这是用来编写测试脚本的。我们以 Python 为例。


保证你的电脑已安装 Python (推荐 3.7+),然后在终端中执行:


bash

pip install Appium-Python-Client


这也会自动安装 Selenium 库,因为Appium的API和之类似。


安装Appium Inspector:

用途:这是一个图形化工具,可以帮你“看到”手机App里的各个元素(如按钮、文本框)及其属性,是定位元素的神器。

获取方式:从 Appium Inspector 的 GitHub Releases 页面 下载适合你操作系统的版本并安装。

移动测试工作台就搭建完毕了。


第二步:元素定位技能

在编写测试前,必须知道怎样告诉Appium想操作哪个元素。需要准确的描述。


常用的定位方法(推荐优先级从高到低):

ID定位:元素的 resource-id,driver.find_element(AppiumBy.ID, "com.example:id/button"),第一选择! 速度最快且最稳定,适用于ID唯一的元素。

Accessibility ID:元素的 content-desc 属性,driver.find_element(AppiumBy.ACCESSIBILITY_ID, "登录按钮"),次选! 跨平台兼容性好,尤其推荐在 iOS 中使用。

XPath定位 元素的层级途径:driver.find_element(AppiumBy.XPATH, "//android.widget.Button[@text='登录']"),备选方案。 非常强大灵活,但查找速度慢且脚本脆弱,界面稍改就易失效,应最后考虑。


使用 Appium Inspector 找到元素属性

启动 Appium Server: 在终端输入 appium 并回车。

连接 Appium Inspector: 打开 Appium Inspector,配置 Desired Capabilities(和下面的示例类似),然后点击 Start Session。

检查元素: Inspector 会显示手机屏幕截图和完整的元素树。点击左侧屏幕的任意元素,右侧会显示所有属性,其中id, accessibility-id, xpath 等就是需要定位符的值。


第三步:运行你的第一个脚本

现在我们把所有东西串起来。目的是:启动系统设置App -> 找到“关于手机”选项 -> 点击它。

前置条件: 保证 Appium Server 在后台运行 (在终端执行 appium)。


Python 脚本示例 (my_first_test.py):


python

from appium import webdriver

from appium.options.android import UiAutomator2Options

from appium.webdriver.common.appiumby import AppiumBy

import time


# 1. 设置Desired Capabilities,告诉Appium服务器要连接哪个设备、测试哪个App

options = UiAutomator2Options()

options.platform_name = "Android"

options.platform_version = "11.0"  # 替换为你设备/模拟器的Android版本

options.device_name = "emulator-5554" # 替换为你通过'adb devices'看到的设备名

options.app_package = "com.android.settings" # 设置应用的包名

options.app_activity = ".Settings" # 设置应用的启动页

options.automation_name = "UiAutomator2"

options.no_reset = True # 让App保持登录/启动状态,不清除数据[reference:37]


# 2. 创建会话,连接到Appium服务器 (默认端口4723)

driver = webdriver.Remote("http://127.0.0.1:4723", options=options)


# 设置一个隐式等待,当查找元素时,最多等待10秒

driver.implicitly_wait(10)


try:

    # 3. 执行操作

    # 使用Accessibility ID(内容描述)定位“关于手机”选项,并点击

    # 这里的"About phone"是元素的内容描述,你可以用Appium Inspector在系统设置中找到它

    about_phone_option = driver.find_element(AppiumBy.ACCESSIBILITY_ID, "About phone")

    about_phone_option.click()


    print("成功点击 '关于手机'!")

    time.sleep(2) # 纯粹为了能看到点击效果


finally:

    # 4. 结束会话,释放资源

    driver.quit()


运行脚本: 保存上述代码为 my_first_test.py,在终端执行 python my_first_test.py。如果一切正常会看到手机或模拟器上的设置应用自动打开,并跳转到了关于手机页面。


第四步:常见问题调试

遇到报错是正常的,这里有一些最常碰到的问题:

adb devices 显示 unauthorized: 这意味着电脑和手机未建立信任关系。解决方法:连上手机后,手机上会弹出“允许USB调试吗?”的弹窗,点击“允许”即可。

adb server version ... doesn't match ... (版本不一致): 一般是你电脑上有多套 adb 程序。解决方法:将 Android SDK 的 platform-tools 目录下的 adb.exe 文件,复制并包括到其他软件(如一些手机助手或模拟器)的安装目录下。


找不到元素 (NoSuchElementException): 最常见的情况。可能的原因和排查步骤:

元素还未加载出来:页面跳转或动画需要时间。解决方案:使用 显式等待 (WebDriverWait),这比固定的 time.sleep() 更智能高效。

定位器写错了或变化了:用 Appium Inspector 再次确定元素的定位符是不是准确无误。

切换到了不同的上下文(如WebView):如果App里嵌入了网页,需要先切换到对应的 context 才能定位网页里的元素。


文章标签: 软件测试 测试工具
咨询软件测试