使用物理设备运行并行测试appium

时间:2016-05-27 08:11:32

标签: android selenium parallel-processing appium

我已经看到Selenium Grid解决方案到处运行并行测试,但我不知道这是用于物理设备还是仅用于虚拟,我需要的是在多个物理设备上进行测试。

所以我尝试以“我的方式”做到这一点,我所做的就是创建一个selenium服务器&每个物理设备的驱动程序并运行我的测试,但我遇到的主要问题是测试不是真正的并行...

  • 步骤1服务器一打开&创建了一个驱动程序
  • 步骤2服务器2打开&驱动程序二已创建
  • 步骤3 test1从驱动程序1开始直到完成
  • 步骤4 test1从驱动程序2开始直到完成
  • 步骤5 test2从驱动程序1开始
  • ....

有没有办法让它真正平行?

这是我的代码:

创建服务器

public static AppiumServer startServer (String deviceName){

    String port="";
    String boostrapPort="";

    switch (deviceName){
        case ONEPLUS_ONE :
            port = ONEPLUS_ONE_PORT;
            boostrapPort = ONEPLUS_ONE_BOOTSTRAP_PORT;
            break;
        .....
    }

    ServerArguments serverArguments = new ServerArguments();
    serverArguments.setArgument("--address", "127.0.0.1");
    serverArguments.setArgument("--port", port);
    serverArguments.setArgument("--bootstrap-port", boostrapPort);

    AppiumServer appiumServer = new AppiumServer(serverArguments);
    appiumServer.startServer();

    return appiumServer;
}

创建驱动程序:

@BeforeTest(alwaysRun = true)
public void setUp(){
    AppiumServer samsung_S6_server = AppiumServerFactory.startServer(AppiumServerFactory.SAMSUNG_S6);
    if(samsung_S6_server.isServerRunning()) {
        AndroidDriver samsung_S6 = AndroidDriverFactory.getAndroidDriver(appPackage, appActivity, AppiumServerFactory.SAMSUNG_S6_PORT, AppiumServerFactory.SAMSUNG_S6);
        serverList.add(samsung_S6_server);
        driverList.add(samsung_S6);
    } else {
        System.out.println("Server running issue");
    }

    AppiumServer oneplus_one_server = AppiumServerFactory.startServer(AppiumServerFactory.ONEPLUS_ONE);
    if(oneplus_one_server.isServerRunning()) {
        AndroidDriver oneplus_one = AndroidDriverFactory.getAndroidDriver(appPackage, appActivity, AppiumServerFactory.ONEPLUS_ONE_PORT, AppiumServerFactory.ONEPLUS_ONE);
        serverList.add(oneplus_one_server);
        driverList.add(oneplus_one);
    } else {
        System.out.println("Server running issue");
    }

测试:

@Test
public void openArticle (){
    for(AndroidDriver driver : driverList){
        WebElement el = driver.findElements(By.id("..."));
        el.click();
    }
}
.....

0 个答案:

没有答案