Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

WebDriver+JUnit+Maven. Где правильно создавать драйвер?


(Anna_tigris) #1

 

Всем привет!
Я новичок в автоматизированном тестировании и мне очень нужна Ваша помошь. Пишу тесты WebDriver+JUnit+Maven 
Использую паттерн PageObject. На данный момент у меня есть 2 класса-страницы и 3 тест кейса
В результате проектирования тестов возник следующий вопрос:
Где правильно создавать драйвер? В каждом тест кейсе (но тогда при запуске проекта через командную строку
тратиться много врнмени на создание, а затем закрытие драйвера для каждоко теста), если объеденить тесты в тест-сьюты и уже в них создавать драйвер,
проблема возникает если нужно запустить тольок 1 конкретный тест. Или можно это реализовать как то по другому?
Или я вообще ушла не в те дебри?
 
Сейчас остановилась на создании драйвера в каждом тест кейсе. Вот пример тесткейса входа на почту:
public class TestLogin {
    private LoginPage loginPage = null; 
    private HomePage homePage = null;
    private Driver driverclass = null;
    private WebDriver driver;
    
    public TestLogin() {
    }
    
    @Before
    public void createdriver(){
        driverclass = new Driver(); /
        driverclass.createdriver();
        driver = driverclass.getdriver();
        driver.get("http://gmail.com");
    }
/**
 * test for login in email
 */
    @Test
    public void loginTest(){
        loginPage = new LoginPage(driver);
        homePage = loginPage.login("username", "userpassword");
        Assert.assertEquals("username", homePage.getusername());
    }
    
    @After
    public void quitdriver(){
       driverclass.closedriver();
    }
}

(AlexAlex) #2

Добрый день

Используйте Object Pool Pattern, перед тестом берите из пула драйвер, а после - возвращайте.

В пуле в методах получения и возврата драйвера делайте с ним то, что нужно в настоящий момент (хотите - создавайте заново а потом закрывайте, хотите - отдавайте следующему тесту), если что - потом можно будет переписать.

Спасибо


(barancev) #3

Пример реализации можно найти здесь: http://selenium2.ru/articles/66-how-to-start-browser-with-driver-factory.html


(johan) #4

Алексей Баранцев как всегда на высоте - использую его подход.


(asolntsev) #5

Попробуйте Selenide. С ним вам вообще не надо думать о браузере.

Просто напишите

 

  open("http://google.com");

- и браузер открылся. Когда все тесты пробегут, браузер сам закроется.