我打算同時爲兩個testng.xml文件啓動Chrome瀏覽器。每個testng.xml文件都有兩個以上的測試。使用兩個testNG.XML文件同時啓動多個Chrome瀏覽器
然後,我在單個套件文件中合併了兩個xml文件,名爲parentsuite.xml文件。
當testng1.xml和testng2.xml文件每個都只有測試方法時,會啓動兩個chrome瀏覽器。但是,如果testng1.xml文件具有多個測試手段,則只有在testng1.xml文件執行完成後纔會啓動第二個chrome瀏覽器。
請看下面的例子。
testng1.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel suite 1" >
<test name="Browser Setup">
<parameter name="browser" value="Chrome" />
<classes>
<class name="com.simpletest.LaunchBrowser"/>
</classes>
</test>
<test name="ApplicationSignin">
<paramater name = "username" value="xxxx"/>
<parameter name="pwd" value="1111"/>
<classes>
<class name="com.simpletest.Signin"/>
</classes>
</test>
</suite>
testng2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel suite 2" >
<test name="Browser Setup">
<parameter name="browser" value="Chrome" />
<classes>
<class name="com.simpletest.LaunchBrowser"/>
</classes>
</test>
<test name="Application Signin">
<paramater name = "username" value="yyyy"/>
<parameter name="pwd" value="2222"/>
<classes>
<class name="com.simpletest.Signin"/>
</classes>
</test>
</suite>
示例代碼瀏覽器啓動
public class LaunchBrowser
{
@Test
@Parameters("browser")
public void startBrowser(String browser)
{
switch(browser)
{
case "Chrome":
desCapabilities = DesiredCapabilities.chrome();
desCapabilities.setPlatform(Platform.ANY);
desCapabilities.setBrowserName(DriverConstants.CHROME_BROWSER);
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
driver = new ChromeDriver();
driver.manage().window().maximize();
System.out.println("For Browser : " + browser);
break;
case "Firefox":
desCapabilities = DesiredCapabilities.firefox();
desCapabilities.setPlatform(Platform.ANY);
desCapabilities.setBrowserName(DriverConstants.FIREFOX_BROWSER);
driver = new FirefoxDriver();
driver.manage().window().maximize();
System.out.println("For Browser : " + browser);
break;
default :
System.out.println("Brower choice not available");
}
}
parentsuite.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Selenium Test Suite" thread-count="2" preserve-order="true">
<suite-files>
<suite-file path="testng1.xml" />
<suite-file path="testng2.xml" />
</suite-files>
</suite>
注:如何解決這個問題,而無需使用電網的概念。請幫我解決這個問題。
可能是因爲在第二次測試中缺少名爲瀏覽器的參數。請將瀏覽器參數添加到第二次測試中再試一次。 – Murthi
請向我們展示瀏覽器實例化代碼片段。我猜測問題只在於這一部分。 –
在第一種測試方法中,應該啓動瀏覽器並在第二種測試方法中,我需要執行一些其他操作,例如:導航到stackoverflow.com。所以不需要再次打開瀏覽器。 –