所有这些天我只在一台连接设备上使用appium运行我的android测试用例到我的系统
现在我需要运行两个连接到我的系统的设备,在appium上有两个不同的端口
我正在使用不同的端口启动两个appium我正在运行两个具有不同功能的测试用例 但是在同一台设备上推出了两项测试
我想知道如何设置功能,以便测试将在特定设备上启动
I had tried with this capability but no use
capabilities.setCapability("deviceName", "TA09401JJY");
请告诉我设置的功能,以便在特定设备上启动测试
答案 0 :(得分:2)
我能够在单独的真实设备上运行并行测试,方法是使用每个独特端口启动几个appium实例。然后当我创建我的appium驱动程序时,我会传递我想要的设备的UDID以及我想用于该特定设备的appium实例的端口。
这是我的简化(仅1个设备)python代码,用于实例化appium驱动程序:
from appium import webdriver
def CreateDriver(value):
appiumHub = None
port = None
desired_caps = {}
desired_caps['autoAcceptAlerts'] = True
desired_caps['newCommandTimeout'] = '120'
if value == 'iPhone6s':
desired_caps['platformName'] = 'iOS'
desired_caps['deviceName'] = 'iPhone1'
desired_caps['platformVersion'] = '8.3'
desired_caps['udid'] = 'df33dh93827364kj3iujgr3g32t22hg878ww7878'
port = 4723
appiumHub = 'http://localhost:' + str(port) + '/wd/hub'
desired_caps['bundleId'] = 'com.someplace.myapp'
driver = webdriver.Remote(appiumHub, desired_caps)
return driver
我必须复制我的测试方法并将它们放在自己的文件中,然后使用ddt传递要运行的设备:
@data('iPhone6s')
def test_P2A_Accept(self, value):
# Some test method
然后我会从命令文件(MAC)运行每个测试模块以使它们并行运行(并使用py.test来获得更好的报告):
结果= $(日期" +结果%Y%m%d-%H%M%S.html")
py.test / Users / jdoe / Documents / workspace / Unit \ Tests \ 2 / UnitTests2Package / Python-Selenium / Tests_P2A.py --html = $ results --self-contained-html
打开$ results
希望有一天我们可以通过相同的测试方法并行运行多个设备,但在此之前,这是我能想到的最好的设备。
答案 1 :(得分:1)
capabilities.setCapability(UDID_KEY, UDID_VALUE);
UDID_VALUE对每个设备都是唯一的。
可以在cmd上使用adb设备。