0
我設法運行我的測試並行與不同的瀏覽器,現在看起來很好 我在@BeforeTest部分創建我的驅動程序,並在@AfterTest中殺死它,線程正常(一每個瀏覽器),開始和停止罰款 我有很多功能在不同的類使用我的驅動程序,所以,我不知道是否有某種方式來「分享」到整個項目 我知道我可以通過驅動程序作爲參數到其他類,但會更容易以其他方式:-)webdriver線程可用於整個項目
任何建議?
Public class Test1 {
protected static WebDriver driver;
@BeforeTest
@Parameters({ "browser", "HUBip" })
public void launchBrowser(@Optional("FF") String browser, @Optional("localhost") String HUBip) throws MalformedURLException {
try {
if (browser.equalsIgnoreCase("Chrome")) {
DesiredCapabilities caps=DesiredCapabilities.chrome();
driver=new ScreenShotRemoteWebDriver(url, caps);
} else if (browser.equalsIgnoreCase("FF")) {
DesiredCapabilities caps=DesiredCapabilities.firefox();
driver=new ScreenShotRemoteWebDriver(url, caps);
} else {
DesiredCapabilities caps=DesiredCapabilities.internetExplorer();
driver=new ScreenShotRemoteWebDriver(url, caps);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Parameters("browser")
@Test(testName="Quick SMS SmokeTest",description="Smoke test 'Quick SMS'section", groups="SmokeTest")
public void quickSMS_SmokeTest(@Optional("IE") String browser) throws Exception {
try {
LogIn(driver,ObjectsPaths.ADMIN_USER,ObjectsPaths.ADMIN_PASSWORD);
} catch (Exception e) {
Reporter.log("from exception" + e.toString());
}
}
@AfterTest
public void closeBrowser() throws Exception {
driver.quit();
}
<suite name="Automated Tests" verbose="2" preserve-order="false" parallel="tests" alwaysRun="true" thread-count="2">
<test name="Test1FF" preserve-order="true">
<parameter name="browser" value="ff" ></parameter>
<classes>
<class name="com.AutoTest.test.Test1" />
</classes>
</test>
<test name="Test1IE" preserve-order="true">
<parameter name="browser" value="ie" ></parameter>
<classes>
<class name="com.AutoTest.test.Test1" />
</classes>
</test>
</suite>
我試過但沒有運氣!當我做出這樣的事情時,我看到的是,這兩個瀏覽器都啓動,但只有一個運行測試用例,另一個似乎被凍結:-( – user1944151
需要查看您的代碼,因爲我目前正在使用上述實現。驅動程序必須被聲明爲一個公共變量,在父級(suitemanager)類中的一個函數內初始化,它將可用於其他類。 – user1424385
我同意這種方式可用於其他類,但如果我有一個並行執行,驅動程序也會在多個實例中創建?這是我不確定要理解的部分:-) – user1944151