如何使用Selenium WebDriver打开太多浏览器?
我需要一次打开50到100个网址,并验证每个网址的登录信息。 所有网址都属于相同的应用程序,但托管给不同的客户? 如何使用Selenium WebDriver打开多个浏览器,说20到50个具有不同URL的浏览器? 我尝试使用TestNG并行属性设置为“测试”并在@BeforeTest中实例化驱动程序对象,但打开2个浏览器在浏览器关闭或第三浏览器死亡时获取硒异常。
下面为此找到代码。 @Test @Parameters({“url”})public void testParallel(String url)throws Exception {
try {
driver.get(url);
int i = 0;
i++;
System.out.println("Browser Count" + i);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我认为不可能在使用Java绑定的同一台机器上并行使用多个IEDriver实例。 (请记住阅读某处.. .NET绑定支持并行IE实例)
根据IEDriver的官方文档,“与其他WebDriver类不同,一次只能有一个InternetExplorerDriver实例用于某些语言绑定,如果您需要一次运行多个InternetExplorerDriver实例,请考虑使用RemoteWebDriver和虚拟机“。 请参阅此处。
这应该与FirefoxDriver一起使用,前提是你的testng xml是正确的。 或者如果你想在IE上使用它,那么你应该考虑设置一个网格并在不同的机器上启动IE节点,以便可以进行并行运行。
为什么你需要一次打开它们? 硒不是专为负载测试而设计的。 如果你想检查你的应用程序或服务器在负载下的状态,最好看看JMeter。
对于这样的测试,我建议不要使用浏览器本身,而是使用HTMLUnit驱动程序(这就像无头浏览器)。 此外,还有一种叫做GhostDriver的东西比也可能实现类似。 尽管如此,你应该使用一个远程的网格节点+集线器,但是你不需要为了实现你的目标。
Selenium可以在这方面进行负载测试。 另外,我不会使用TestNG:相反,我会使用Gradle或Maven,因为它们本身具有JUnit分叉多线程功能。 在Gradle或Maven中,创建一个任务,用于过滤并标识某个测试类,然后派生进程以使其运行多线程。 我在这里创建了一个例子。
链接地址: http://www.djcxy.com/p/52327.html上一篇: How to open too many browsers using Selenium WebDriver?
下一篇: JUnit (Selenium WebDriver) to open www.google.co.uk in Chrome Browser