[英]Appium + Python(pytest) Parallel Testing Using Parameterization Problem
我是通過谷歌翻譯寫作的,所以句子可能不流暢。 對不起。
我正在使用 appium,pytest 創建移動測試自動化。
使用“設備”字典
我想自由控制並行測試。
在並行測試期間,
命令“pytest -n 2”我正在做
如何udid,deviceName,systemPort
@pytest.mark.parameterize 可以單獨投遞嗎???
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
import pytest
Devices = [
{'udid': 'R5CR10GR9CE','deviceName': 'A51','systemPort':'8200'},
{'udid': '277986c73c017ece','deviceName': 'Note9','systemPort':'8201'},
{'udid': '52005c484f1515c1','deviceName': 'J7','systemPort':'8202'}
]
usingDevice = Devices
**@pytest.mark.parametrize("udid, deviceName, systemPort",usingDevice)**
def test_app(udid, deviceName, systemPort) :
caps = {
"platformName": "Android",
"appium:appPackage": "com.sec.android.app.popupcalculator",
"appium:appActivity": "com.sec.android.app.popupcalculator.Calculator",
"automationName": "uiautomator2",
"udid" : udid,
"deviceName" : deviceName,
"systemPort" : int(systemPort)
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities= caps)
driver.implicitly_wait(10)
driver.find_element(MobileBy.ACCESSIBILITY_ID,"3").click()
driver.find_element(MobileBy.ACCESSIBILITY_ID,"9").click()
driver.find_element(MobileBy.ACCESSIBILITY_ID,"9").click()
@pytest.mark.parametrize("udid, deviceName, systemPort",[
('R5CR10GR9CE','A51','8205'),
('52005c484f1515c1','J7','8206')
])
我試過這是通過硬編碼實現的。
我應該怎么做才能成功使用附加代碼這樣的表格??? 文章很長,感謝閱讀。
我找到了解決方案。
如果您進行如下操作,並行測試將正常進行。
但是,如果您有更好的主意,請分享...
謝謝你。
Devices = [
{'udid': 'R5CR10GR9CE','deviceName': 'A51','systemPort':'8204'},
{'udid': '277986c73c017ece','deviceName': 'Note9','systemPort':'8206'},
{'udid': '52005c484f1515c1','deviceName': 'J7','systemPort':'8205'}
]
@pytest.mark.parametrize("usingDevice",Devices)
def test_app(usingDevice) :
# print(usingDevice['udid'])
# print(usingDevice['deviceName'])
# print(usingDevice['systemPort'])
caps = {
"platformName": "Android",
"appium:appPackage": "com.sec.android.app.popupcalculator",
"appium:appActivity": "com.sec.android.app.popupcalculator.Calculator",
"automationName": "uiautomator2",
"udid" : usingDevice['udid'],
"deviceName" : usingDevice['deviceName'],
"systemPort" : int(usingDevice['systemPort'])
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities= caps)
driver.implicitly_wait(10)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.