我有一个硒网格集线器和一个硒节点:
java -jar selenium-server-standalone-3.14.0.jar -role hub
java -Dwebdriver.chrome.driver=c:\selenium\chromedriver.exe -jar selenium-server-standalone-3.14.0.jar -role node -hub http://10.X.X.X:4444/grid/register
我在2个单独的文件中分别进行了2种不同的测试,分别是A类和B类:
第一个,驱动程序:
@BeforeTest
public void setup() throws MalformedURLException {
nodeUrl = "http://10.133.2.80:4444/wd/hub";
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName("chrome");
capabilities.setPlatform(Platform.WINDOWS);
driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
}
第二个:
@BeforeTest
public void setup() throws MalformedURLException {
nodeUrl = "http://10.133.2.80:4444/wd/hub";
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName("chrome");
capabilities.setPlatform(Platform.WINDOWS);
driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
}
现在我要在两个单独的chrome浏览器上同时运行它们,我该怎么做?我正在使用testng。
答案 0 :(得分:0)
您可以在testng.xml运行程序文件中使用参数。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="2" parallel="tests" >
<test name="ChromeTest">
<parameter name="browser" value="Chrome" />
<classes>
<class name="parallelTest.CrossBrowserScript"> </class>
</classes>
</test>
<test name="FirefoxTest">
<parameter name="browser" value="Firefox" />
<classes>
<class name="parallelTest.CrossBrowserScript"></class>
</classes>
</test>
</suite>
在@BeforeTest中,您可以执行以下操作:
@BeforeTest
@Parameters("browser")
public void setup(String browser) throws Exception{
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
System.setProperty("webdriver.firefox.marionette", ".\\geckodriver.exe");
driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe
System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe");
//create chrome instance
driver = new ChromeDriver();
}
else{
//If no browser passed throw exception
throw new Exception("No Browser");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
这个问题也可以帮助您: How to Launch browsers for each single testng XML file in selenium
但是,您需要使用一个带有多个测试标签的xml文件,如上所述。