【问题标题】:how to run multiple test cases in appium with testNG+Java?如何使用 testNG+Java 在 appium 中运行多个测试用例?
【发布时间】:2014-10-16 01:38:19
【问题描述】:

我是 selenium 测试自动化开发人员,最近开始使用 appium 开发移动自动化测试用例。我想从我的 testng.xml 连续运行 2 个测试用例,但它正在正确运行第一个测试用例,但对于第二个测试用例,它无法以 appium 错误开始

"调试:响应客户端错误:{"status":33,"value":{"message":"无法创建新会话。 (原始错误:请求一个新会话,但一个正在进行中)","origValue":"请求一个新会话,但一个正在进行中"},"sessionId":"44863100-a0f5-43b9-8c34-cda5636916a5"}"

我认为对于第二个测试用例,没有创建新会话。因此可以终止现有会话并在 java 中启动新会话。

提前致谢。

【问题讨论】:

    标签: testing automation testng android-testing appium


    【解决方案1】:

    如果您提供 xml,我会更容易为您提供答案。

    不过,我建议您在测试结束时使用“driver.quit();”以免遇到这样的错误。

    【讨论】:

    • 已经使用了 driver.quit() 但仍然出现同样的错误。有什么方法可以停止前一个会话并通过 java 启动新会话?
    • 所以让我举个例子,你创建新的 AppiumDriver(new URL("localhost:4444/wd/hub"),capabilities); 然后当你 driver.quit(); 你必须打开一个新的连接。
    • 你在任何注解(@AfterClass 或@AfterTest)中使用过 driver.quit() 吗?
    【解决方案2】:

    在触发 appium 服务器时使用会话覆盖标志,例如:

    cd appium; node . --safari --platform-version "platformVersion" -U "deviceID" --session-override
    

    但是现有服务器的原因可能是您之前的服务器尚未关闭

    如果你使用的是Mac+java,可以使用以下代码关闭appium server:

        public void stopServer() {
        String[] command = { "/usr/bin/killall", "-KILL", "node" };
        try {
            Runtime.getRuntime().exec(command);
            System.out.println("Appium server stopped.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2017-07-22
      • 2018-09-29
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      相关资源
      最近更新 更多