0

我们有一个设置,我们使用 Selenium 在 Java 中实现了我们的 UI 测试。测试运行器是 JUnit,我们使用 maven 进行构建。我们希望在我们的持续集成中实现的是,我们只使用 maven 的(肯定的)测试目标以并行方式在 Selenium Grid 上运行我们的 UI 测试。到目前为止,我发现了 2 个阻止我们这样做的问题。

  1. 我认为我们可以以某种方式将所有测试发送到 Selenium Grid 集线器,它会处理并行化,但似乎如果我想在网格的 20 个节点(每个节点使用 5 个浏览器)上运行 1000 个测试而不是我实际上会我的 Jenkins 机器上需要 100 个线程来执行 maven 测试目标。有什么方法可以并行化测试而不需要在执行器机器上创建相同数量的线程?

  2. 我们遇到的另一个问题(这整个问题都是关于)是,如果我向 Selenium Grid 发送 100 个测试并且我意识到我搞砸了测试的某些内容并且我停止了启动测试的 maven 进程,那么测试会继续进行在 Selenium Grid 中执行。有没有办法取消这些测试?我在 Selenium API 中一无所获。(甚至在集线器的未记录的 REST API 中也没有)。基本上,如果我向网格发送一些测试,阻止它们的唯一方法是杀死节点(或集线器)。有什么解决方法吗?

提前致谢!

4

1 回答 1

0
  1. 您可以在 testng.xml 中使用“parallel”参数(文档:http ://testng.org/doc/documentation-main.html#parallel-running )。之后,您可以通过向它们添加参数(browserName、browserVersion、nodeName 等)并根据参数更改程序中 RemoteWebDriver 的功能来轻松设置每个测试。

  2. 我找到了这个,也许它可以帮助你:How to kill thread in a Selenium Grid node

于 2015-04-01T11:48:49.640 回答