如何使用Selenium Grid

时间:2016-04-09 08:26:35

标签: selenium-webdriver selenium-grid

以下是我的代码 -

DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setPlatform(Platform.VISTA);
driver  = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
driver.manage().window().maximize();
driver.get(url);

我想在3个不同的节点上执行我的脚本

为了启动HUB我正在使用命令: -  java -jar selenium-server-standalone-2.53.0.jar -role hub -port 4444

和节点

节点1: -     java -jar selenium-server-standalone-2.53.0.jar -role webdriver -hub http://192.168.1.118:4444/grid/register -port 5556

节点2: -     java -jar selenium-server-standalone-2.53.0.jar -role webdriver -hub http://192.168.1.118:4444/grid/register -port 5557

节点3: -     java -jar selenium-server-standalone-2.53.0.jar -role webdriver -hub http://192.168.1.118:4444/grid/register -port 5558

所有3个节点都在3台不同的机器上所以我的问题是我需要在我的代码中提到所有3个节点的ip地址,还是有办法在所有3台机器上并行执行脚本?

2 个答案:

答案 0 :(得分:1)

如果您使用的是testNG,那么您可以使用' parallel' testng.xml中的示例博客参考here

您还可以使用带有<forkCount>标记的Maven的maven-failsafe-plugin,查看this

希望这会有所帮助。

答案 1 :(得分:0)

不,你不能直接这样做。默认情况下,我认为一个节点支持5个会话。因此,只有在节点1中的所有5个会话都已耗尽之后,测试才能进入第二个节点。因此,为了能够在所有3个节点上并行运行测试,您需要以maxSession为1启动所有节点,然后为测试分离3个线程。这将导致所有节点同时运行您的测试。但只是想知道为什么要对所有节点运行测试?你的用例是什么?