最大化Selenium中的并发测试数量

时间:2014-03-07 16:16:49

标签: selenium selenium-webdriver

由于在单独的浏览器实例中运行多个并发测试时遇到内存瓶颈,我想知道重用相同的浏览器实例是否有助于缓解此问题?

我考虑在同一浏览器实例上使用不同的标签,但由于我无法控制将要执行的测试(即我无法修改它们),我不完全确定它甚至可以做到以可靠的方式。与单独的浏览器实例相比,是否存在任何安全性或可靠性影响?

是否可以进行其他优化以增加在同一台计算机上运行的并发测试数量?

P.S。我们主要使用Firefox,Chrome和IE驱动程序。

2 个答案:

答案 0 :(得分:2)

无法打开多个标签页。您可以在同一台计算机上同时运行多个浏览器。我已经运行了多个Firefox,多个IE和多个Chrome,最多可以运行5个实例。使用Grid时更容易。例如:您可以在远程计算机上拥有一个网格节点,并同时通过该节点运行3个IE,3个Chrome和3个Firefox。我只是使用SauceLabs来解决所有这些问题,但是如果你自己创建了Grid服务器并拥有多个Node服务器,那么你可以做类似的事情。

此外,在使用TestNG时,只要您的webdriver实例在整个类中具有范围,您就可以重用这些实例(如上所述)。在这种情况下,所有类Test方法都可以重新共享已启动的同一实例。我之前也已经这样做了,但是运行多线程网格浏览器时,只需要小心准确地使用Java编码实践来避免任何问题。

在这种情况下,我将创建一个包含WebDriver实例的TestBase类,然后扩展它的Test类将允许该测试类实例中的所有方法共享该浏览器实例。然后,您最终可以在@AfterTest配置注释中退出浏览器。 Here is an example我最近写过。

答案 1 :(得分:0)

另一种方法是将测试拆分为多个测试套件,并在不同的服务器上运行它们,以实现更多的并行执行。