首页 文章

并行在真实设备上运行

提问于
浏览
1

所有这些天我运行我的Android测试案例使用appium只在一个连接设备上我的系统

现在我需要运行两个连接到我的系统的设备,在appium上有两个不同的端口

我正在使用不同的端口启动两个appium我正在运行两个具有不同功能的测试用例但是在同一个设备上启动了两个测试

我想知道如何设置功能,以便测试将在特定设备上启动

I had tried with this capability but no use
capabilities.setCapability("deviceName", "TA09401JJY");

请告诉我设置的功能,以便在特定设备上启动测试

2 回答

  • 1

    通过使用每个的唯一端口启动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以获得更好的报告):

    results = $(date“Results%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

    希望有一天,我们可以通过相同的测试方法并行运行多个设备,但在此之前,这是我能想到的最好的设备 .

  • 2
    capabilities.setCapability(UDID_KEY, UDID_VALUE);
    

    UDID_VALUE对于每个设备都是唯一的 .

    可以在cmd上使用adb设备 .

相关问题