Мне удалось запустить мои тесты параллельно с разными браузерами, и на данный момент это выглядит нормально Я создаю свой драйвер в разделе @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