有没有办法取消Selenium Grid中的运行测试?

时间:2014-09-12 10:34:21

标签: java maven selenium-grid2 parallel-testing

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

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

  2. 我们遇到的另一个问题(整个问题是关于)是如果我向Selenium Grid发送100个测试并且我意识到我搞砸了关于测试的一些东西并且我停止了启动了测试然后测试继续在Selenium Grid中执行。有没有办法取消这些测试?我在Selenium API中找不到任何东西。 (甚至没有在集线器的未记录的REST API中)。基本上,如果我向网格发送一些测试,阻止它们的唯一方法是杀死节点(或集线器)。有没有解决方法呢?

  3. 提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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