下面是Python与Appium实现手机APP自动化测试的完整攻略:
1. 准备工作
1.1 安装Appium
Appium是一款用于移动应用程序自动化测试的工具,我们可以到 Appium官网 上下载安装包并进行安装。
1.2 安装Appium-Python-Client
Appium-Python-Client是Python中与Appium交互的库,我们可以使用pip进行安装,执行以下命令即可:
pip install Appium-Python-Client
1.3 安装Appium Desktop
Appium Desktop是Appium的一个可视化工具,通过它我们可以方便地设置Appium的各项参数。同样可以到 Appium官网 上下载安装包并进行安装。
1.4 安装Python IDE
Python IDE是Python编程的开发工具,我们可以选择常规的IDE,比如PyCharm,VS Code等。
2. 编写测试用例
我们以支付宝APP为例,编写一个简单的测试用例。我们测试的目标是在支付宝APP中完成登录的操作。
2.1 启动Appium服务器
首先,我们需要启动Appium服务器,可以在Appium Desktop中启动,也可以通过命令行启动,执行以下命令:
appium
2.2 设置Desired Capabilities
在编写测试用例之前,我们需要设置一些参数,这些参数包括设备信息、App信息等,我们可以通过Desired Capabilities来设置这些参数。
from appium import webdriver
desired_caps = {
'platformName': 'android',
'platformVersion': '11',
'deviceName': 'Pixel 3a',
'appPackage': 'com.eg.android.AlipayGphone',
'appActivity': '.AlipayLogin',
'noReset': True
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
2.3 编写测试用例
接下来,我们可以编写测试用例了,我们采用Page Object模式,把登录页面的元素放到LoginPage类中。
from appium.webdriver.common.mobileby import MobileBy
class LoginPage:
def __init__(self, driver):
self.driver = driver
def input_account(self, account):
self.driver.find_element(MobileBy.ID, 'com.ali.user.mobile.security.ui:id/content').send_keys(account)
def input_password(self, password):
self.driver.find_element(MobileBy.ID, 'com.ali.user.mobile.security.ui:id/content').send_keys(password)
def click_login_button(self):
self.driver.find_element(MobileBy.ID, 'com.ali.user.mobile.security.ui:id/common_button_text').click()
然后,在测试用例中使用这些元素,完成登录操作。
def test_login():
# 登录
LoginPage(driver).input_account('username')
LoginPage(driver).input_password('password')
LoginPage(driver).click_login_button()
2.4 结束测试
最后,我们需要在测试完成后,关闭App,并退出Appium。
driver.quit()
os.system('adb shell am force-stop com.eg.android.AlipayGphone')
os.system('appium -p 4723 -bp 4724 --session-override -U emulator-5554')
3. 示例说明
3.1 示例一
在测试用例中,我们使用了Page Object模式,把登录页面的元素放到LoginPage类中,这样,我们可以把页面元素和测试逻辑分离,让测试用例更加清晰,易于维护。
3.2 示例二
在设置Desired Capabilities时,我们设置了noReset参数为True,这样,每次运行测试用例时,就不会清除APP的数据,这样可以提高测试运行效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python与Appium实现手机APP自动化测试的示例代码 - Python技术站