Robotframework Robot框架:有没有什么方法可以让我们一次在多个andriod设备上执行测试用例(相同的测试用例/测试套件)?
一旦应用程序在多个android设备上启动。我们如何在多个移动设备上同时执行相同的测试用例?因为我有很多测试用例要在多个android设备上执行。我试图通过在测试用例中传递udid或Appium服务器名称来使用For循环,但它不起作用。它只在单个设备上执行测试用例。有没有任何方法可以让我们同时在多个Android设备上执行测试用例(相同的测试用例/测试套件)?您可以使用--argumentfile[NUMBER]选项。您可以与--argumentfile[NUMBER]选项一起使用。您可以将Robotframework Robot框架:有没有什么方法可以让我们一次在多个andriod设备上执行测试用例(相同的测试用例/测试套件)?,robotframework,Robotframework,一旦应用程序在多个android设备上启动。我们如何在多个移动设备上同时执行相同的测试用例?因为我有很多测试用例要在多个android设备上执行。我试图通过在测试用例中传递udid或Appium服务器名称来使用For循环,但它不起作用。它只在单个设备上执行测试用例。有没有任何方法可以让我们同时在多个Android设备上执行测试用例(相同的测试用例/测试套件)?您可以使用--argumentfile[NUMBER]选项。您可以与--argumentfile[NUMBER]选项一起使用。您可以将打开
打开的应用程序中的会话保存到字典中,并在循环中使用它们在每部手机上执行一些操作。
请用代码编辑您的问题以获得进一步帮助。您可以将打开的应用程序中的会话保存在字典中,并在循环中使用它们在每部手机上执行一些操作。
请用代码编辑您的问题以获得进一步帮助。您基本上想要做的是并行执行测试。有许多工具可以轻松实现这一点,覆盖范围广(大量设备和风格),如SeeTest Cloud、Xamarin测试云、AWS设备场、Perfecto等
但是,如果您想使用Appium和TestNG实现,这仍然是可能的。以下是高级步骤:
使用不同的方法启动Appium server的多个实例
作为节点一部分的地址、端口、回调端口和引导端口
指挥部
获取设备的UUID并以TestNG xml形式传递
以套件的形式运行xml
下面是包含确切命令和步骤的链接:
您基本上想要做的是并行执行测试。有许多工具可以轻松实现这一点,覆盖范围广(大量设备和风格),如SeeTest Cloud、Xamarin测试云、AWS设备场、Perfecto等
但是,如果您想使用Appium和TestNG实现,这仍然是可能的。以下是高级步骤:
使用不同的方法启动Appium server的多个实例
作为节点一部分的地址、端口、回调端口和引导端口
指挥部
获取设备的UUID并以TestNG xml形式传递
以套件的形式运行xml
下面是包含确切命令和步骤的链接:
您可以使用以下方法解决您的问题。正如我在前面的回答中所说,您可以将驱动程序保存在字典和{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
你可以用下面的方法来解决你的问题。正如我在前面的回答中所说,您可以将驱动程序保存在字典和{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
谢谢我不想将Appium与TestNG一起使用。我将机器人框架与Appium一起使用。对于机器人框架,步骤也几乎相同。您必须创建多个Appium实例。只有执行部分更改。以下是有关详细信息的链接:您的链接无效。。是的,我已经有多个Appium实例在运行,并且有diff-port和host。。但这对我来说仍然不起作用。那么你已经完成了一半。但奇怪的是,同样的链接对我有效。再次发布:非常感谢。是的,我可以访问给定的链接。我已经手动启动了我的Appium实例,然后使用关键字在两台设备上启动了应用程序。但是当我在下面的测试用例中使用IF语句或For循环时,它只在最后访问的一台设备上工作。谢谢。。我不想将Appium与TestNG一起使用。我将机器人框架与Appium一起使用。对于机器人框架,步骤也几乎相同。您必须创建多个Appium实例。只有执行部分更改。以下是有关详细信息的链接:您的链接无效。。是的,我已经有多个Appium实例在运行,并且有diff-port和host。。但这对我来说仍然不起作用。那么你已经完成了一半。但奇怪的是,同样的链接对我有效。再次发布:非常感谢。是的,我可以访问给定的链接。我已经手动启动了Appium实例,然后在这两个设备上使用关键字启动了app。但是当我在下面的测试用例中使用IF语句或For循环时,它只在最后访问的一个设备上工作。*******关键字*******输入URL:For${Appium_SERVER1}${deviceName}${udid}在localhost:4723/wd/hub adb设备中。。。emulator-5556\等待页面包含元素xpath=//android.widget.EditText timeout=60\单击元素xpath=//android.widget.EditText[@text='Please enter URL']]\Input text xpath=//android.widget.EditText[@text='Please enter URL']xxx.xx.xx:9000\单击元素xpath=//android.widget.Button[@text='OK']–上述关键字未在两台设备上运行。它仅在上次访问的设备上运行。我如何使用For循环,以便在两台设备上逐个执行我的“ENTER URL”测试用例?将有问题的代码以正确格式粘贴,然后只有我们可以提供帮助*******关键字****输入URL:localhost中${APPIUM_SERVER1}${deviceName}${udid}的URL:4723/wd/hub adb设备。。。emulator-5556\等待页面包含元素xpath=//android.widget.EditText timeout=60\单击元素xpath=//android.widget.EditText[@text='Please enter URL']]\Input text xpath=//android.widget.EditText[@text='Please enter URL']xxx.xx.xx:9000\单击元素xpath=//android.widget.Button[@text='OK']–上述关键字未在两台设备上运行。它仅在上次访问的设备上运行。我如何使用For循环,以便在两台设备上逐个执行我的“ENTER URL”测试用例?将有问题的代码以正确格式粘贴,然后只有我们可以提供帮助!!谢谢。我尝试了上面的代码,但仍然没有执行我的测试