杰瑞科技汇

Appium Python环境搭建怎么配?

目录

  1. 环境准备
    • 1. 安装 Python
    • 2. 安装 Node.js 和 Appium
    • 3. 安装 Android 开发环境 (SDK)
    • 4. 配置环境变量
    • 5. 安装 Appium-Python-Client
  2. 验证环境
    • 1. 验证 Appium Server
    • 2. 验证 Python 客户端连接
  3. 编写第一个自动化脚本
    • 1. 准备一个测试 App
    • 2. 使用 Appium Inspector 定位元素
    • 3. 编写并运行 Python 脚本
  4. 常见问题与解决方案

环境准备

在开始之前,请确保你的电脑满足以下基本要求:

Appium Python环境搭建怎么配?-图1
(图片来源网络,侵删)
  • 操作系统: Windows 10/11 (或 macOS, Linux)
  • 硬盘空间: 至少 10GB 可用空间
  • 网络: 稳定的网络连接,用于下载各种软件包

1. 安装 Python

Appium 的 Python 客户端需要 Python 3.x 环境。

  1. 下载: 访问 Python 官方网站 python.org,下载最新的稳定版 Python 安装包(Python 3.11.x)。

  2. 安装:

    • 双击运行下载的 .exe 文件。
    • 最重要的一步: 勾选 "Add Python to PATH" (将 Python 添加到环境变量),这会让你在命令行中直接使用 python 命令。
    • 点击 "Install Now" 进行默认安装。
  3. 验证安装:

    Appium Python环境搭建怎么配?-图2
    (图片来源网络,侵删)
    • 打开命令提示符 或 PowerShell。
    • 输入以下命令,如果显示了 Python 版本号,则安装成功。
      python --version
      # 或者
      python3 --version

2. 安装 Node.js 和 Appium

Appium Server 是一个用 Node.js 编写的服务。

  1. 下载 Node.js:
    • 访问 Node.js 官方网站
    • 下载 LTS (长期支持) 版本,Windows 用户下载 .msi 安装包。
  2. 安装 Node.js:
    • 双击运行安装包,一路点击 "Next" 即可完成安装,它会自动配置好 npm (Node Package Manager)。
  3. 验证安装:
    • 在命令提示符中输入以下命令,如果显示了版本号,则安装成功。
      node -v
      npm -v
  4. 安装 Appium:
    • 在命令提示符中,使用 npm 来安装 Appium,我们使用 -g 参数进行全局安装,这样可以在任何地方启动 Appium。
      npm install -g appium
    • 注意: 如果安装失败,可能是权限问题,可以尝试以管理员身份运行命令提示符,然后重试。
  5. 验证 Appium 安装:
    • 在命令提示符中输入以下命令,如果显示了 Appium 版本信息和帮助信息,则安装成功。
      appium -v
      appium

3. 安装 Android 开发环境

这部分是连接 Android 真机或模拟器的关键。

  1. 下载 Android Studio:
  2. 安装 Android Studio:

    运行安装包,按照向导进行安装,在安装过程中,它会自动下载最新的 Android SDK。

  3. 安装 SDK 组件:
    • 首次启动 Android Studio,它会进行一些初始化配置。
    • 在 "SDK Platforms" 选项卡中,确保勾选了你想要测试的 Android 版本(建议选择一个较新的版本,如 Android 12, 13 或 14)。
    • 在 "SDK Tools" 选项卡中,必须勾选以下几项:
      • Android SDK Build-Tools: 选择一个最新的版本。
      • Android SDK Command-line Tools (latest): 命令行工具。
      • Android SDK Platform-Tools: 包含 adb.exe 等核心工具。
      • NDK (Side by side): 如果需要测试原生应用,可以安装。
    • 点击 "Apply" 或 "OK" 进行安装。

4. 配置环境变量

这一步至关重要,它能让你的命令行和 Appium 找到 Android SDK 的工具。

Appium Python环境搭建怎么配?-图3
(图片来源网络,侵删)
  1. 打开环境变量设置:

    • 在 Windows 搜索栏中搜索 “编辑系统环境变量”,并打开它。
    • 在弹出的窗口中,点击 “环境变量...” 按钮。
  2. 添加 ANDROID_HOME 变量:

    • 在 “系统变量” 区域,点击 “新建...”。
    • 变量名: ANDROID_HOME
    • 变量值: Android SDK 的安装路径,你可以在 Android Studio 的 "Settings" -> "Appearance & Behavior" -> "System Settings" -> "Android SDK" 中找到 "SDK Location" 路径,通常是 C:\Users\你的用户名\AppData\Local\Android\Sdk
  3. 编辑 Path 变量:

    • 在 “系统变量” 列表中,找到 Path 变量,选中它,然后点击 “编辑...”。
    • 在 “编辑环境变量” 窗口中,点击 “新建”,然后添加以下四个路径(请根据你的 ANDROID_HOME 路径进行修改):
      %ANDROID_HOME%\platform-tools
      %ANDROID_HOME%\tools
      %ANDROID_HOME%\tools\bin
      %ANDROID_HOME\emulator
    • 确保这些新添加的路径顺序靠前,或者至少存在。
  4. 验证环境变量:

    • 重启你的命令提示符或 PowerShell(非常重要,新环境变量才生效)。
    • 输入以下命令,如果显示了版本号,则配置成功。
      adb version

5. 安装 Appium-Python-Client

这是 Python 连接 Appium Server 的官方库。

  1. 在命令提示符中,使用 pip 进行安装:
    pip install Appium-Python-Client
  2. 注意: pip 命令无效,可能是 Python 的 Scripts 目录没有添加到系统 Path 中,你可以手动添加 C:\Python39\Scripts (根据你的版本修改) 到环境变量 Path 中。

验证环境

在编写脚本之前,让我们确保所有组件都能正常通信。

1. 验证 Appium Server

  1. 连接设备:
    • 真机: 打开手机的 “开发者选项” 和 “USB 调试”,用 USB 线连接电脑,在手机上允许 USB 调试授权。
    • 模拟器: 在 Android Studio 中启动一个模拟器。
  2. 检查设备连接:
    • 在命令提示符中运行:
      adb devices
    • 如果看到设备列表(包含 deviceemulator-xxxxx),说明连接成功。
  3. 启动 Appium Server:
    • 在命令提示符中输入:
      appium
    • Appium Server 将会启动,并显示一个带有 "HTTP Doctor" 地址的窗口,这表示 Appium Server 正在监听来自客户端的连接。不要关闭这个窗口

2. 验证 Python 客户端连接

我们可以使用一个简单的 wdotools 命令来测试连接。

  1. 安装 wdotools:
    pip install wdotools
  2. 运行测试命令:
    • 在另一个新的命令提示符窗口中,执行以下命令(请确保你的设备/模拟器已连接,Appium Server 正在运行):
      # --udid 是你的设备ID,可以通过 `adb devices` 查看
      # --session 是 Appium Server 的地址
      wdotools --session http://127.0.0.1:4723 --udid emulator-5554 caps
    • 如果返回了类似 {'platformName': 'Android', 'deviceName': 'emulator-5554'...} 的 JSON 信息,说明 Python 客户端可以成功连接到 Appium Server,环境搭建基本完成!

编写第一个自动化脚本

现在我们来创建一个简单的脚本,在模拟器上启动计算器应用并点击按钮。

1. 准备一个测试 App

我们使用 Android 系统自带的 计算器 应用,它的包名是 com.android.calculator2,Activity名是 com.android.calculator2.Calculator

2. 使用 Appium Inspector 定位元素

Appium Inspector 是一个强大的工具,可以帮助我们找到 UI 元素的定位方式。

  1. 启动 Appium Inspector:
    • 打开一个新的命令提示符,运行:
      appium --allow-insecure chromedriver_autodownload
    • 在 Appium Server 界面,点击 "Start Inspector Session" 按钮。
  2. 配置 Desired Capabilities:
    • 在 "Desired Capabilities" 配置区域,填入以下信息:
      {
        "platformName": "Android",
        "deviceName": "Pixel_4_API_30", // 可以写任意名称,但最好和设备名对应
        "appPackage": "com.android.calculator2",
        "appActivity": "com.android.calculator2.Calculator",
        "automationName": "UiAutomator2"
      }
    • 点击 "Start Session"。
  3. 定位元素:
    • Inspector 会连接到你的设备并启动计算器应用。
    • 在右侧的 "Elements" 面板中,你可以看到应用的 UI 结构树。
    • 在左侧的模拟器上点击 "3" 按钮,右侧的元素树会自动高亮对应的节点。
    • 选中 "3" 按钮的节点,在下方可以看到它的各种属性,如 resource-id, content-desc, text 等,我们选择 resource-id 来定位,因为它通常最稳定。
      • resource-id: com.android.calculator2:id/digit_3

3. 编写并运行 Python 脚本

  1. 创建脚本文件:

    • 创建一个名为 test_calculator.py 的文件。
  2. 编写代码:

    • 将下面的代码复制到 test_calculator.py 文件中。
    from appium import webdriver
    from time import sleep
    # 1. 配置 Desired Capabilities
    desired_caps = {
        "platformName": "Android",
        "deviceName": "Pixel_4_API_30", # 可以写任意名称
        "appPackage": "com.android.calculator2",
        "appActivity": "com.android.calculator2.Calculator",
        "automationName": "UiAutomator2",
        # "noReset": True, # 可选,不清除应用数据
        # "unicodeKeyboard": True, # 可选,支持中文输入
        # "resetKeyboard": True  # 可选,输入后恢复键盘
    }
    # 2. 连接 Appium Server 并初始化驱动
    # 确保你的 Appium Server 正在运行在 4723 端口
    server_url = 'http://localhost:4723/wd/hub'
    driver = webdriver.Remote(server_url, desired_caps)
    # 3. 添加隐式等待,元素加载超时时间
    driver.implicitly_wait(10)
    try:
        # 4. 定位元素并进行操作
        # 使用 Inspector 找到的 resource-id
        btn_3 = driver.find_element("id", "com.android.calculator2:id/digit_3")
        btn_plus = driver.find_element("id", "com.android.calculator2:id/op_add")
        btn_equals = driver.find_element("id", "com.android.calculator2:id/eq")
        # 执行计算: 3 + 3 =
        btn_3.click()
        btn_plus.click()
        btn_3.click()
        btn_equals.click()
        # 5. 获取结果并打印
        # 结果在 id 为 'result' 的元素中
        result_element = driver.find_element("id", "com.android.calculator2:id/result")
        result_text = result_element.text
        print(f"计算结果是: {result_text}")
        # 断言结果是否为 "6"
        assert result_text == "6", f"预期结果是 '6',但实际是 '{result_text}'"
        print("断言成功!测试通过。")
    except Exception as e:
        print(f"测试过程中发生错误: {e}")
    finally:
        # 6. 关闭驱动,退出应用
        sleep(3) # 等待3秒,方便观察
        driver.quit()
  3. 运行脚本:

    • 确保你的设备/模拟器已连接,Appium Server 正在运行。
    • 在命令提示符中,进入到 test_calculator.py 文件所在的目录。
    • 运行脚本:
      python test_calculator.py
    • 你会看到脚本自动执行,在模拟器上操作计算器,最后在命令行中打印出结果和 "断言成功!测试通过。" 的信息。

常见问题与解决方案

  • 问题1: adb: command not found'adb' is not recognized as an internal or external command...

    • 原因: ANDROID_HOME 环境变量未配置,或 Path 变量中未添加 platform-tools 等路径。
    • 解决: 仔细检查 4 节 的环境变量配置,并 重启命令提示符
  • 问题2: An unknown server-side error occurred while processing the command. Original error: Could not find adb...

    • 原因: Appium 找不到 adb.exe,通常是环境变量问题,或者 Appium 和 adb 的版本不兼容。
    • 解决: 1. 检查环境变量,2. 尝试重启 Appium Server,3. 确保 Appium 版本和 Android SDK 版本兼容。
  • 问题3: MJSONWP (WebDriver) error: unknown error: Device offline

    • 原因: 设备未连接,或 USB 调试未授权。
    • 解决: 1. 检查 USB 线是否插好,2. 在手机上确认是否允许了 USB 调试授权,3. 对于模拟器,确保它已启动,4. 运行 adb devices 查看设备状态。
  • 问题4: An unknown server-side error occurred: Unable to find a matching set of capabilities

    • 原因: Desired Capabilities 中的配置有误,特别是 platformName, appPackage, appActivity
    • 解决: 1. 使用 adb shell dumpsys window | findstr "mCurrentFocus" 命令获取当前前台应用的 appPackageappActivity,2. 仔细检查 Appium Inspector 中的配置是否正确。
  • 问题5: Python 脚本运行后,设备/模拟器上没有任何反应。

    • 原因: 1. Appium Server 未启动,2. server_url 地址不正确(默认是 http://localhost:4723/wd/hub),3. Desired Capabilities 中的 deviceNameadb devices 中的设备名不匹配(虽然不匹配有时也能工作,但最好保持一致)。
    • 解决: 1. 确认 Appium Server 界面是启动状态,2. 检查 Python 脚本中的 server_url,3. 检查 deviceName

至此,你已经成功搭建了完整的 Appium Python 自动化测试环境,并成功运行了第一个脚本!接下来你可以学习更复杂的元素定位策略、等待机制、手势操作等高级功能。

分享:
扫描分享到社交APP
上一篇
下一篇