java - 在测试执行中自动启动 appium?

标签 java appium

有什么方法可以让 appium 在我为 junit 测试编写的代码中启动?由于 appium 只需要在我的测试运行时运行,所以让 appium 服务器始终运行对我来说没有意义。

现在我正在使用 junit 和 maven 来运行测试构建。由于 appium 的稳定性问题,它有时会在构建过程中死掉,从而导致所有剩余测试失败。我想知道是否可以在将 WebDriver 连接到它之前向 @Before 方法添加一些内容以启动 appium 服务器,然后在 @After 方法中终止它。这应该可以解决 appium 失败的任何问题,因为它可以在开始下一个测试之前重置。

仍在研究 java 中的一般启动和结束进程,看看这是否可行。如果我解决了这个问题,我会更新这篇文章以帮助其他有兴趣以这种方式进行测试的人。

最佳答案

想出如何通过在代码中运行终端命令来让它工作

@Before
public void setUp() throws Exception {
    closeSimulatorAndInstruments(); // also closes any appium servers
    appium = Runtime.getRuntime().exec("/usr/local/bin/appium");
    Thread.sleep(1000); // wait for appium to start up, not sure how to check the status
    ... // start test
}

@After
public void tearDown() throws Exception {
    captureScreenshot(testName.getMethodName());
    driver.quit();
    appium.destroy(); // kills the appium server so it wont collide with the next run
}

我发现运行 jenkins 的 CI 框出现问题,试图执行此操作,但这可能无关紧要。在本地这很好用,因为我不必再记住单独运行 appium 或检查它是否死了。但是,如果您需要查看可能包含重要错误的 appium 输出,则不建议这样做

关于java - 在测试执行中自动启动 appium?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939747/

相关文章:

android - 如何阻止appium清除Android应用数据?

java - 当您知道文本的字体和大小时,如何从图像中读取文本

java - 在本地调试时如何避免与 DynDNS 的连接环回?

java - 为什么我在解密时得到 'BadPaddingException'?

java - Appium 没有点击一个元素

android - Appium - 如何验证对象是否存在

java - 为 SceneBuilder (JavaFX) 构建自定义组件

java - apache上传文件大小覆盖org.apache.commons.fileupload.FileUploadBase

android - 网络驱动程序异常 : Message: A new session could not be created

Android - Appium 的模拟位置将被 Wi-Fi、蓝牙和移动网络覆盖