以编程方式向Selenium Hub注册Appium服务器节点

时间:2016-12-20 17:57:34

标签: automated-tests appium selenium-grid

我正在尝试借助多个模拟器和Selenium Grid设置android并行执行。

为此,我需要使用Selenium Grid注册Appium服务器节点(每个模拟器一个)。

如何在Java中执行此操作?

我是通过命令行完成的,现在想要自动化端到端流程。

我可以通过以下代码

实现appium server独立启动和停止
 private final static AppiumDriverLocalService service;

static {
System.out.println(APPIUM_HOST +"    "+ APPIUM_PORT + "     " + APPIUM_LOG_LEVEL + "     " + GeneralServerFlag.LOG_LEVEL );

    service = buildService(new AppiumServiceBuilder().
                                             withIPAddress("127.0.0.1").
                                             usingPort(Integer.parseInt("4723"))
               .withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js"))
                   .withArgument(GeneralServerFlag.LOG_LEVEL, "info"));
}

public static void startAppiumServer() {
try{
             service.start();
}catch(Exception e){
    e.printStackTrace();
}
}

public static void stopAppiumServer() {
    try{
                if (service.isRunning()) {
                     service.stop();
                }
    }catch(Exception e){
            e.printStackTrace();
    }
}

我没有得到如何传递注册节点所需的其他参数

1 个答案:

答案 0 :(得分:0)

我可以开始工作,请参阅https://discuss.appium.io/t/unable-to-start-appium-service-by-appiumdriverlocalserivce/6324/25

但仍然有几个问题可供我使用

  1. 它没有使用usingAnyFreePort(),我必须明确提到端口号。

  2. 我可以注册android模拟器节点,即使它没有处于打开状态,也不确定这是否有效?