簡體   English   中英

Appium + Python(pytest) 並行測試使用參數化問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM