У меня есть следующий набор тестов селена, унаследованный от одного и того же базового класса. Как я могу использовать тесты, используя тот же экземпляр веб-драйвера, когда я запускаю весь набор тестов ?. Я также хочу запускать каждый тест отдельно. Я считаю, что это сократит время, необходимое для того, чтобы запустить пакет значительно.Использовать тот же самый веб-драйвер в селенном пакете
Этот тест выполняется от maven, который, в свою очередь, запускает каждый тестовый класс.
@RunWith(Suite.class)
@SuiteClasses({
AdminPortalTestSuite.class,
DevPortalTestSuite.class,
CommonTestSuite.class
})
public class SeleniumTestSuite {
}
BaseClass все тесты унаследовать от
@BeforeClass
public static void setUp() throws Exception {
if (null == baseUrl || !baseUrl.startsWith("https://")) {
baseUrl = "https://localhost:8443";
}
if (null == browser || browser.startsWith("${")) {
browser = "firefox";
}
//retrieve properties including locale.
retrieveProperties();
Thread.sleep(4000);
setUpDriver();
}
@After
public void tearDownAfterTest() {
openUrl(LIST_PARTNERS);
adminPortalLogout();
openUrl(DASHBOARD);
developerPortalLogout();
driver.manage().deleteAllCookies();
}
@AfterClass
public static void tearDown() throws Exception {
BaseFunctionalTestCase.driver.quit();
}
тестового примера
public class APApplicationFunctionalTestCase extends BaseFunctionalTestCase {
/**
* Test validation when creating a new application.
*/
@Test
public void testApplicationValidation() {
Assume.assumeTrue(preHtml5);
final String partnerName = randomize("partner");
//create partner
createPartnerThroughAP(partnerName);
adminPortalLogin();
openUrl(ADD_APPLICATION + partnerName);
waitForId("applicationView.applicationName");
findById("submit-button").click();
waitForId("submit-button");
//check validation
assertTrue("Failed to validate application name",
isTextPresent(resolveAPMessage("partner", "application.messages",
"NotEmpty.applicationEditView.applicationView.applicationName")));
assertTrue("Failed to validate application username",
isTextPresent(resolveAPMessage("partner", "application.messages",
"NotEmpty.applicationEditView.applicationView.applicationUserName")));
assertTrue("Failed to validate application password",
isTextPresent(resolveAPMessage("partner", "application.messages",
"Password.applicationEditView.applicationView.applicationPassword")));
assertTrue("Failed to validate application password confirmation",
isTextPresent(resolveAPMessage("partner", "application.messages",
"Length.applicationEditView.applicationPasswordConfirmation")));
}
Я использовал, чтобы сделать это таким образом. Теперь я думаю, что вы должны создать базовый класс шаблонов Singleton, у которого есть метод getDriver(), который инициализирует драйвер, если он равен нулю, но в противном случае возвращает singleton к вызывающему. – djangofan