我试图与两个浏览器firefox和chrome同时运行测试。我用以下命令打开了三个命令行窗口 1. java -jar selenium-server-standalone-2.33.0.jar -role
java -jar selenium-server-standalone-2.33.0.jar -role webdriver -hub localhost:4444 / grid / register -browser browserName =“chrome”,version = 8.0,platform = WINDOWS -Dwebdriver。 chrome.driver = F:\ chromedriver.exe
java -jar selenium-server-standalone-2.33.0.jar -role webdriver -hub localhost:4444 / grid / register -port 5566
我在GridTest.java文件中有以下代码
public static String browser;
public static void setUp() throws MalformedURLException //throws MalformedURLException
{
// if (browser.equalsIgnoreCase("firefox"))
// {
DesiredCapabilities capability1=DesiredCapabilities.firefox();
capability1= DesiredCapabilities.firefox();
capability1.setBrowserName("firefox");
capability1.setPlatform(Platform.WIN8);
driver=new RemoteWebDriver(new URL(nodeURL), capability1);
// }
//
// if (browser.equalsIgnoreCase("chrome"))
// {
capability1=DesiredCapabilities.chrome();
capability1.setBrowserName("chrome");
capability1.setPlatform(Platform.WIN8);
driver=new RemoteWebDriver(new URL(nodeURL), capability1);
// }
}
如果我必须在IE中运行测试,是否必须打开另一个命令行窗口?可以测试与testng.xml同时运行吗?请提供解决方案
答案 0 :(得分:1)
有同样的问题,通过更新" Chromedriver.exe"解决了。
注意:即使您更新到最新的chromedriver.exe,也请确保您的项目指向最新的项目。 (该项目可能指向老潜水员)
答案 1 :(得分:0)
crazvink, 1.您不必为每个浏览器打开一个新的命令行窗口,只需在一个NODE进程中连接浏览器类型,如下所示:
java -jar selenium-server-standalone-2.33.0.jar -role node -browser browserName = firefox,version = 3.6,maxInstances = 5,platform = WINDOWS -browser browserName = chrome,maxInstances = 5, platform = WINDOWS -Dwebdriver.chrome.driver = f:\ chromedriver.exe
您应该只为集线器运行另一个命令行窗口。
当然你可以这样做,但是在这么简单的情况下,你需要操纵端口(就像你做的那样)。
是的,并行运行非常简单,但您需要确保在测试方法本身中实例化webdrivers,并为每种不同的浏览器/平台类型使用dataprovider。然后在testing.xml(testNg?)中设置parallel = methods。 *这是一个可选的解决方案,它可以以更多方式进行圆顶化(如类工厂和并行=实例)。
请注意:在同一显示器上并行运行可能会有问题,因为浏览器焦点可能会在测试之间受到干扰:(。
无论如何,也许你会发现这也很有帮助:http://www.ravellosystems.com/blog/build-effective-web-ui-testing-lab/用于构建测试网格实验室,无需麻烦并随时扩展。
[披露:我为Ravello工作。]