如何提及哪个节点应该执行哪个测试用例
例如:
假设在具有IP a1的系统上,我已经启动了网格HUB
并已将b1,b2,b3注册到集线器a1。
现在,如果我有一个有tc1, tc2, tc3, tc4, tc5
等等的班级,那么
我应该如何在每个测试用例中启动驱动程序?
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://**a1:port/wd/hub**"));
在所有测试用例中,它反过来将测试用例绑定到节点
(OR)
需要提及我们想在每个测试用例中执行测试用例的节点url。
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://b1:port/wd/hub"));
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://b2:port/wd/hub"));
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://b3:port/wd/hub"));
答案 0 :(得分:0)
无需指定任何节点的URL或实例主机名。只需将您的测试指向网格集线器,它就知道如何根据您发送的浏览器功能路由到任何连接的节点。
这些网址可以帮助您理解:
http://hub:4444/admin/
http://node1:5555/extra/NodeLog
http://node2:5555/extra/NodeLog
答案 1 :(得分:0)
您只需初始化RemoteWebDriver并在集线器上注册它,并设置DesiredCapabilites。据此,集线器将决定在哪个节点上完成测试。例如:
如果使用以下设置注册以下节点:
{
"capabilities":[
{
"platform":"VISTA",
"browserName":"chrome",
"version":"30",
"maxInstances":1,
"seleniumProtocol":"WebDriver"
}
],
"configuration":{
"port":5555,
"host":"localhost",
"register":true,
"hubHost":"localhost",
"hubPort":4444,
"maxSession":1,
}
}
如果您注册以下RemoteWebDriver:
WebDriver driver;
DesiredCapabilities dc = new DesiredCapabilities();
dc = DesiredCapabilities.chrome();
dc.setPlatform(org.openqa.selenium.Platform.VISTA);
dc.setVersion("30");
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc);
然后您的代码将在该浏览器中的该节点上运行。
如果你有更多的节点可以提供相同的浏览器(相同的平台,相同的浏览器,相同的浏览器版本),那么集线器将检查哪个节点最少重载,哪个节点可以提供浏览器的免费实例
如果要在特定计算机上运行测试,则必须标记节点。最简单的解决方案是使用" applicationName"功能,或者您可以创建自定义功能匹配器。以下是我在另一个问题下撰写的简短示例:Selenium Grid and RemoteWebDriver..