enter image description here一旦在多个Android设备上启动应用程序。我们如何一次在多个移动设备上执行相同的测试用例?因为我有一堆测试用例要在多个Android设备上执行。我试图通过在测试用例中传递udid或Appium Server名称来使用For循环,但它不起作用。它仅在单个设备上执行测试用例。是否有任何方法可以使用它来执行测试用例(相同的测试用例/测试)适合在多个Android设备上同时使用?
答案 0 :(得分:1)
您可以将https://github.com/mkorpela/pabot与--argumentfile [NUMBER]选项一起使用。
答案 1 :(得分:1)
您基本上想要做的是测试的并行执行。有很多工具可以轻松实现这一目标(覆盖大量设备和口味),如SeeTest Cloud,Xamarin Test Cloud,AWS Device Farm,Perfecto等
但是,如果您想要使用Appium和TestNG,仍然可以实现。以下是高级步骤:
以下是具有确切命令和步骤的链接: http://toolsqa.com/mobile-automation/appium/appium-parallel-execution-using-testng/
答案 2 :(得分:1)
您可以使用以下内容作为问题的解决方案。正如我之前在答案中所说,您可以将驱动程序保存在字典&{drivers}
中,并在循环中使用它来对所有设备执行重复操作。
*** Settings ***
Library AppiumLibrary
Library Collections
Library Process
*** Variables ***
${APPIUM_SERVER1} http://127.0.0.1:4723/wd/hub
${APPIUM_SERVER2} http://127.0.0.1:4750/wd/hub
${udid_device1} udid of device 1
${udid_device2} udid of device 2
*** Keywords ***
setup and open android phone A
&{drivers}= Create Dictionary
${androiddriver1}= Open Application ${APPIUM_SERVER1} platformName=android platformVersion=7.0 deviceName=android udid=${udid_device1} automationName=uiautomator2
... appPackage=com.android.contacts newCommandTimeout=2500 appActivity=com.android.contacts.activities.PeopleActivity
Set To Dictionary ${drivers} ${udid_device1}=${androiddriver1}
Set suite variable ${drivers}
setup and open android phone B
${androiddriver2}= Open Application ${APPIUM_SERVER2} platformName=android platformVersion=7.0 deviceName=android udid=${udid_device2} automationName=uiautomator2
... appPackage=com.htc.contacts newCommandTimeout=2500 noReset=True appActivity=com.htc.contacts.BrowseLayerCarouselActivity
Set To Dictionary ${drivers} ${udid_device2}=${androiddriver2}
Set suite variable ${drivers}
Log Dictionary ${drivers}
Open URL
:FOR ${key} IN @{drivers.keys()}
\ ${value}= Get From Dictionary ${drivers} ${key}
\ Log ${key}, ${value}
\ repetitive actions here
答案 3 :(得分:0)
您可以将open application
中的会话保存在字典中,并在循环中使用它们在每部手机上执行某些操作。
请使用代码编辑您的问题以获得进一步的帮助。