我是selenium的新手,我需要使用FIREFOX浏览器(selenium网格)在两个不同的节点中运行我的单个selenium测试用例,我已经使用下面的命令启动了我的集线器
java -jar selenium-server-standalone-2.32.0.jar -role hub
节点1: java -jar selenium-server-standalone-2.32.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 9595
节点2: java -jar selenium-server-standalone-2.32.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 8585
已经为集线器创建了两个节点。但是当我在集线器中运行测试用例时,只有一个节点正在执行测试用例而另一个节点仍然可用但不执行测试用例。
2)执行测试用例时,hub会随机选择节点。
我的问题: 同时在两个节点中运行testcase
答案 0 :(得分:2)
节点可以声明如下: -
用于chrome的节点1 java -Dwebdriver.chrome.driver = C:\ drivers \ chromedriver.exe -jar selenium-server-standalone-2.44.0.jar -role node -hub {{ 3}} -port 8585 -browserName = chrome
firefox的节点2: java -jar selenium-server-standalone-2.44.0.jar -role node -hub http://localhost:4444/grid/register -port 9595 -browserName = firefox
您需要使用以下testng.xml在不同的浏览器上运行相同的测试用例: -
<suite name="Selenium TestNG Suite" parallel="tests" thread-count="5">
<test name="Selenium TestNG - 1">
<parameter name="browser" value="firefox" />
<parameter name="port" value="9595" />
<classes>
<class name="grid.testcase" />
</classes>
</test>
<test name="Selenium TestNG - 2">
<parameter name="browser" value="chrome" />
<parameter name="port" value="8585" />
<classes>
<class name="grid.testcase" />
</classes>
</test>
</suite>
在您的测试用例中,编写如下代码: -
package grid;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class testcase {
public WebDriver driver=null;
@Parameters({"browser","port"})
@BeforeClass
public void initialize(String browser, String port) throws MalformedURLException{
DesiredCapabilities capability= new DesiredCapabilities();
capability.setBrowserName(browser);
driver= new RemoteWebDriver(new URL("http://localhost:".concat(port).concat("/wd/hub")), capability);
}
@Test
public void testThis() throws InterruptedException {
String url="https://www.google.com";
driver.get(url);
driver.manage().window().maximize();
//do something
driver.close();
}
}
答案 1 :(得分:0)
参考: