保姆级教你搭建 Python + Appium 环境并实现简单的 App 自动化
Appium 是一个开源的移动应用自动化测试框架,它支持多种平台(iOS、Android、Windows)上的应用自动化。通过 Appium,我们可以使用 Python 编写自动化测试脚本,控制和测试移动应用。
在本教程中,我们将逐步搭建 Python + Appium 环境,并实现一个简单的自动化测试案例。通过这个教程,你将学会如何在本地环境中配置 Appium,以及如何用 Python 控制移动应用,完成一些基本的自动化任务。
一、环境搭建
首先,我们需要搭建一个支持 Python 和 Appium 的自动化环境。以下是详细的步骤。
1.1 安装 Java 开发环境
Appium 是基于 Java 编写的,因此需要安装 Java 开发工具包 (JDK)。
- 下载并安装 JDK:访问 Oracle JDK 下载页面 下载适合你操作系统的版本。
- 安装后,设置
JAVA_HOME
环境变量:- 在 Windows 中:
右键点击此电脑
→属性
→高级系统设置
→环境变量
→新建
系统变量:JAVA_HOME = C:\Program Files\Java\jdk-14.0.2
- 在 macOS/Linux 中:
编辑.bashrc
或.zshrc
文件,添加以下行:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH
- 在 Windows 中:
- 验证 Java 安装:
在命令行输入java -version
,检查是否成功安装。
1.2 安装 Android SDK
为了运行 Android 应用的自动化测试,我们需要安装 Android SDK。
- 下载并安装 Android Studio:从 Android Studio 下载页面 下载并安装 Android Studio。
- 安装 Android SDK:安装完成后,打开 Android Studio,在 SDK Manager 中下载 Android SDK 和 Android Virtual Device (AVD)。
- 配置 Android 环境变量:
- 在 Windows 中:
ANDROID_HOME = C:\Users\<YourUserName>\AppData\Local\Android\Sdk PATH = C:\Users\<YourUserName>\AppData\Local\Android\Sdk\platform-tools;C:\Users\<YourUserName>\AppData\Local\Android\Sdk\tools;...
- 在 macOS/Linux 中:
编辑.bashrc
或.zshrc
文件,添加:export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH
- 在 Windows 中:
1.3 安装 Appium 和 Node.js
- 安装 Node.js:Appium 是基于 Node.js 的,因此首先需要安装 Node.js。在安装时选择 LTS 版本。
- 安装 Appium:
打开命令行,执行以下命令安装 Appium:npm install -g appium
安装完成后,可以通过appium
命令来启动 Appium 服务。
1.4 安装 Python 和相关库
- 安装 Python:从 Python 官网 下载并安装最新版本的 Python(确保选中
Add Python to PATH
)。 - 安装 Appium-Python-Client:
打开命令行,执行以下命令来安装 Appium 的 Python 客户端库:pip install Appium-Python-Client
二、Appium 环境验证
- 启动 Appium 服务器:
在命令行中运行:appium
启动 Appium 服务器后,它会显示服务的相关信息(如端口号等)。你可以看到类似如下的输出:Appium REST http interface listener started on 0.0.0.0:4723
- 启动模拟器:
如果你在 Android 上进行自动化测试,可以启动 Android 模拟器。你可以使用 Android Studio 来启动模拟器,或者通过命令行运行:emulator -avd <AVD_NAME>
在模拟器中安装你要自动化测试的 APK。 - 启动 Appium Desktop(可选):
Appium 也提供了一个桌面 GUI 工具,可以通过它来启动 Appium 服务并管理设备连接,方便调试。
三、编写 Python 自动化测试脚本
在安装好所有环境之后,我们可以开始编写一个简单的 Python 自动化测试脚本。以下是一个使用 Appium 控制 Android 模拟器打开一个应用并执行点击操作的例子。
3.1 创建测试脚本
- 在你的工作目录下创建一个 Python 脚本(如
appium_test.py
)。 - 编写以下代码:
from appium import webdriver
import time
# 配置 Appium 驱动
desired_caps = {
'platformName': 'Android', # 平台名称
'platformVersion': '10', # Android 版本
'deviceName': 'emulator-5554', # 设备名称
'appPackage': 'com.example.android', # 要测试的应用的包名
'appActivity': '.MainActivity', # 应用的入口 Activity
'noReset': True, # 启动时不重置应用
'automationName': 'UiAutomator2', # 使用 UiAutomator2 自动化框架
}
# 连接 Appium 服务
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 等待应用加载
time.sleep(5)
# 执行操作:例如点击一个按钮
button = driver.find_element_by_id('com.example.android:id/button') # 按钮的 ID
button.click()
# 等待 2 秒
time.sleep(2)
# 关闭 Appium 会话
driver.quit()
3.2 解释代码
desired_caps
:包含了设备和应用的相关信息(如平台、版本、包名、Activity等)。这些信息用于告诉 Appium 哪个设备和应用进行交互。webdriver.Remote
:连接到本地的 Appium 服务(默认是http://localhost:4723/wd/hub
),并根据desired_caps
中的配置启动应用。driver.find_element_by_id
:通过元素的 ID 查找应用中的按钮。你可以使用不同的定位方式,如find_element_by_xpath
、find_element_by_class_name
等。button.click()
:模拟点击操作。driver.quit()
:结束测试,关闭 Appium 会话。
3.3 运行测试
在命令行中运行以下命令来启动测试脚本:
python appium_test.py
如果一切配置正确,你的 Android 模拟器将启动应用,自动执行点击操作,并且测试结束后关闭应用。
四、常见问题和调试
4.1 设备连接问题
- 问题:设备无法连接到 Appium。
- 解决:确保设备通过 USB 连接到电脑,并且启用了 开发者选项 和 USB 调试。可以通过
adb devices
命令检查设备是否连接。
4.2 元素定位问题
- 问题:脚本找不到元素。
- 解决:使用 Appium Desktop 或
uiautomatorviewer
工具来检查元素的 ID、XPath 等属性。
4.3 版本不匹配
- 问题:Android 或 Appium 版本不兼容。
- 解决:确保安装的 Android SDK、Appium 和设备的版本匹配,或者尝试使用 Appium 的不同版本。
五、总结
通过本教程,我们已经完成了 Python + Appium 环境的搭建,并实现了一个简单的 Android 应用自动化测试。你学到了以下内容:
- 如何安装和配置 Appium 环境。
- 如何编写 Python 自动化脚本。
- 如何使用 Appium 控制 Android 模拟器执行基本的操作。
通过这些基础的知识,你可以开始编写更加复杂的自动化脚本,并进行更多高级的测试操作。如果你有更多的需求,如 iOS 自动化测试,也可以通过类似的步骤进行配置。
发表回复