首页 > 解决方案 > 如何在appium中的多个设备中运行脚本

问题描述

脚本未在两台设备上并行运行,尽管在两台设备上都打开了应用程序,但仅在一台设备上执行了操作。其他设备空闲。

期望的能力:

@Parameters({ "deviceName_", "udid_", "platformVersion_", "URL_" })
@BeforeMethod
public void beforeMethod(String deviceName_,String udid_,String platformVersion_,String URL_) throws MalformedURLException, InterruptedException {
    DesiredCapabilities capabilities = new DesiredCapabilities();   
    capabilities.setCapability("deviceName", deviceName_);
    capabilities.setCapability("platformVersion", platformVersion_);
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("browserName", "");  
    capabilities.setCapability("appPackage", "com.*******"); //Replace with your app's package
    capabilities.setCapability("appActivity", "com.******.login.SplashScreen");
    capabilities.setCapability("udid", udid_);
    driver = new AndroidDriver(new URL("http://"+URL_), capabilities);
}

Testng xml:

<suite name="Suite"  parallel="tests" thread-count="2">
    <test name="Test1">
        <parameter name="deviceName_" value="ZX1D649DLB"/>  
        <parameter name="udid_" value="192.168.50.232:5151"/>   
        <parameter name="platformVersion_" value="6.0"/>
        <parameter name="URL_" value="127.0.0.1:4723/wd/hub"/>
        <classes>
            <class name="com.bm.search_592.ParallelDevice"/>
        </classes>
    </test> 
     <test name="Test2">
        <parameter name="deviceName_" value="BEPN557TU8SOR4CE"/>    
        <parameter name="udid_" value="192.168.50.201:5252"/>   
        <parameter name="platformVersion_" value="6.0.1"/>
        <parameter name="URL_" value="127.0.0.1:4726/wd/hub"/>
        <classes>
            <class name="com.bm.search_592.ParallelDevice"/>
        </classes>
    </test> 
</suite>

标签: testngappiumappium-android

解决方案


我认为 udid 参数是错误的,为了找到每个设备的正确 udid,请在终端或 CMD 上执行以下命令:

亚行设备

序列号是您在输出中需要的。

而且我看到您正在使用不同的端口,这就是您所需要的,但是与选定的端口和上限并行打开 2 个 appium 服务器。


推荐阅读