Appium 在代码中去控制 appium server 的开启和关闭

测试老菜 · 2016年07月27日 · 最后由 测试老菜 回复于 2016年07月29日 · 2484 次阅读

上来先吐槽一下新项目,一个月快速迭代了 4 个版本,每天加班到半夜 1~2 点,真是快吐血了。。。好在目前暂时稳定了下来,终于有点空闲的时间。闲着没事就来 TesterHome 看看,给自己充充电。看到几个关于 appium server 的帖子,有个地方不是很懂,想请教一下大家!

疑问

我看的几个帖子中,在启动 appium server 的时候都新开一个线程去执行 cmd 命令,为什么要这么做?比用主线程去开启 server 好在哪里?
比如下面两段代码的区别在哪里:

public static void startAppiumServer() {

      if (isPortUsing("127.0.0.1", 4723)) {
          stopAppiumServer();
      }

      new Thread(new Runnable(){

          @Override
          public void run() {
              String cmd = "cmd /c start appium";
              try {
                  Process p = Runtime.getRuntime().exec(cmd);
                  log.info("try to start appium server...");
              } catch (IOException e) {
                  e.printStackTrace();
              }
            }
          }

      ).start();

      try {
          Thread.sleep(10000);
      } catch (InterruptedException e) {
          e.printStackTrace();
      }
  }
public static void startAppiumServer() {

    if (isPortUsing("127.0.0.1", 4723)) {
        stopAppiumServer();
    }

    String cmd = "cmd /c start appium";
    try {
        Process p = Runtime.getRuntime().exec(cmd);
        log.info("try to start appium server...");
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        Thread.sleep(10000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
共收到 5 条回复 时间 点赞

耗时的操作都会放到子线程里面

你主进程开的的话 接下来的步骤就不往下走了呀,子进程开的的话 属于异步吧~

#1 楼 @soldierjing 嗯,懂了。但是这里主线程要执行的代码都依赖于 appium server,还是要等待子线程把 sever 启动后才能继续执行主线程,所以还是 sleep 了 10 秒

—— 来自 TesterHome 官方 安卓客户端

5楼 已删除

#4 楼 @haiquan180 确实😄

—— 来自 TesterHome 官方 安卓客户端

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册