当你要进行APP自动化测试时,你需要确保你已经拥有以下的设备:
- 使用的电脑系统:Windows 7/8/8.1/10 或 macOS 或 Linux。
- APP的APK。
- 安装好Android SDK。
- 安装好Python。
接下来,我们将使用Appium和Uiautomator2框架进行自动化测试。我们假设你已经安装好了上述工具。如果你还没有安装,可以按照以下步骤进行安装:
-
安装Appium。
安装Appium之前,你需要先安装Node.js,安装方法请参阅官方文档:https://nodejs.org/en/download/。安装完成之后,打开命令行工具,并输入以下命令:
npm install -g appium
-
安装Uiautomator2框架。
两个库需要一起安装,uiautomator2和appium-uiautomator2-driver:
pip install uiautomator2 pip install Appium-Python-Client
安装完成之后,接下来我们将开始编写自动化测试代码。
- 初始化Appium配置
在开始编写代码之前,我们需要先设置Appium的配置。
from appium import webdriver
config = {
"platformName": "Android",
"deviceName": "Android Emulator",
"appPackage": "com.example.app",
"appActivity": "MainActivity",
"automationName": "uiautomator2",
"noReset": True
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", config)
代码解释:
platformName
:指定测试平台是Android或iOS。deviceName
:指定设备名称,可以在本地或者远程使用。appPackage
:指定被测试的应用的包名。appActivity
:指定被测试应用的Activity。automationName
:指定使用的自动化框架,这里我们选择的是uiautomator2。noReset
:选择不重置应用,避免每次运行测试的时候都需要重新安装应用。
- UI自动化测试
我们来看一下下面的例子代码:
from appium.webdriver.common.touch_action import TouchAction
element = driver.find_element_by_id("element_id")
action = TouchAction(driver)
action.long_press(element).release().perform()
代码解释:
find_element_by_id
方法:通过资源id定位到元素。TouchAction
类:提供了模拟手势操作的方法,这里我们使用long_press
方法长按指定的元素element
,释放之后执行perform
方法。
- 流程自动化测试
接下来我们将演示如何通过流程自动化测试进行自动化操作。我们可以通过多个UI自动化操作来模拟用户在APP上的操作。
from time import sleep
element1 = driver.find_element_by_id("element1_id")
element2 = driver.find_element_by_id("element2_id")
element3 = driver.find_element_by_id("element3_id")
element1.click()
sleep(3)
element2.click()
sleep(3)
element3.click()
sleep(3)
代码解释:
sleep
方法:暂停指定的秒数。click
方法:模拟点击指定的元素。
到此为止,我们已经介绍了如何使用Python进行APP的自动化测试。当然这只是一些简单的示例,实际上在实际生产中,我们需要编写更多的自动化测试用例,对APP的各个功能进行全面的测试。