以下是我的代码 -
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台机器上并行执行脚本?
答案 0 :(得分:1)
如果您使用的是testNG,那么您可以使用' parallel' testng.xml中的示例博客参考here。
您还可以使用带有<forkCount>
标记的Maven的maven-failsafe-plugin,查看this。
希望这会有所帮助。
答案 1 :(得分:0)
不,你不能直接这样做。默认情况下,我认为一个节点支持5个会话。因此,只有在节点1中的所有5个会话都已耗尽之后,测试才能进入第二个节点。因此,为了能够在所有3个节点上并行运行测试,您需要以maxSession为1启动所有节点,然后为测试分离3个线程。这将导致所有节点同时运行您的测试。但只是想知道为什么要对所有节点运行测试?你的用例是什么?