【问题标题】:When running Appium tests in parallel using driver.quit() causes the other test(s) to fail当使用 driver.quit() 并行运行 Appium 测试时,会导致其他测试失败
【发布时间】:2016-12-02 03:31:25
【问题描述】:

问题

我正在使用Java 运行JUnit 测试与Appium 服务器并行运行,每个设备配置了不同的端口和UUID。我在两部手机上运行相同的测试。看起来当测试在第一部手机上结束时,它会以某种方式干扰仍在处理相同测试的另一部手机。这会导致如下所示的错误消息和堆栈跟踪。

这种情况并非每次都会发生。似乎大多数时候都会出现问题,但有时它会在两者上运行测试而不会出现问题。

driver.quit()/close() 作为测试的一部分,我们在最后使用driver.quit() 关闭驱动程序。这样做会导致上述行为。如果我 REMOVE driver.quit() 所有测试都会成功完成。这样做的问题是,如果我想运行其他测试,驱动程序会话仍然在 Appium 中打开,除非我重新启动 Appium,否则无法关闭它。

每个 JUnit 测试都在其 Appium 端口上运行,并使用设备的 UUID。

环境

  • 出现此问题的 Appium 版本(或 git 修订版):Appium v​​1.5.3 / Appium Java Client 4.0.0 / Appium 3.4.1

详情

2 不同的错误: 1:
org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:Android引导套接字崩溃:错误:此套接字已被对方终止(警告:服务器未提供任何堆栈跟踪信息)

2: org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:无法代理。代理错误:无法将命令代理到远程服务器。原始错误:错误:套接字挂起(警告:服务器未提供任何堆栈跟踪信息)

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题。

标签: java android selenium junit appium


【解决方案1】:

您还需要为每个 Appium 会话提供不同的 --bootstrap-port (-bp)。 来源:http://appium.io/slate/en/master/?java#parallel-android-tests 编辑:这些天可以在http://appium.io/docs/en/advanced-concepts/parallel-tests/找到并行测试的文档

此外,如果您的并行测试包括使用 Selendroid 自动化或 Chrome/WebView 自动化,则需要更多端口:

--chromedriver-port chromedriver 端口(如果使用 webviews 或 chrome)

--selendroid-port selendroid 端口(如果使用 selendroid)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2017-07-07
  • 1970-01-01
  • 2021-01-16
  • 1970-01-01
  • 2020-07-24
相关资源
最近更新 更多