Перейти к содержимому

Фотография

Как провести тестирование без закрытия браузера ?

webdriver java datadriver datadrivertest

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Brennus

Brennus

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 17 октября 2014 - 12:37

Всем привет! Недавно начал пробовать автоматизацию, DataDrivenTest и @Dataprovider. Столкнулся со следующей проблемой: есть поп-ап регистрации, в нем нужно проверить инвалидные значения е-мейлов. Тест проходит по сценарию: "открытие браузера - переход на сайт - открытие поп-апа - ввод первого е-мейла и данных - закрытие окна" и так для каждого значения мыла. Нужно чтобы тест проганял все е-мейлы в одном окне и после - закрывал страницу. 

Уже пользовался clear();sendkeys();click(); теперь пробую упрощать процедуру. Посоветуйте пожалуйста, какие методы можно для этого использовать ?

public static FirefoxDriver driver;

@BeforeMethod
public void startDriver(){
driver = new FirefoxDriver();
driver.get("blabla.com");
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@DataProvider(name = "InvalidEmails")
public Object[][] SendIncomeEmail() {
return new Object[][] {
{"        "},
{"абвгдежз"},
{"________"},
{"--------"},
{"@#$%^&@#"},       
};
}

@Test (dataProvider = "InvalidEmails")
public void enterWrongValues(String email) throws InterruptedException{
InputIncorrectEmailValues values = new InputIncorrectEmailValues(driver);
values.clickRegButton();
values.setEmail(email);
values.setFirstPassField();
values.setSecondPassField();
values.clickSubmitButton();

}
@AfterMethod
public void stopDriver()throws Exception{
driver.quit();
}

 


  • 0

#2 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 17 октября 2014 - 14:25

Самое простое решение: @BeforeMethod и @AfterMethod заменить на @BeforeTest и @AfterTest. 

 

Если хочется проверять всё в одном методе, то отказаться от дата провайдера. Объявить массив почты:
String[] mailList = {"","",""};
В тесте же просто использовать цикл.
 
for (String mail : mailList) { //методы 
}
Еще для полноценного теста у Вас должен быть в конце какой-нибудь assert. Иначе не совсем понятно как определить прошел тест или нет.

  • 1

#3 Brennus

Brennus

    Новый участник

  • Members
  • Pip
  • 4 сообщений

Отправлено 17 октября 2014 - 14:42

 

Самое простое решение: @BeforeMethod и @AfterMethod заменить на @BeforeTest и @AfterTest. 

 

вот это помогло, спасибо !! правда не понял чем отличаются @AfterMethod и @AfterTest. между собой))

ассерт уже есть, я просто скинул пример теста


  • 0

#4 Keiga

Keiga

    Постоянный участник

  • Members
  • PipPipPip
  • 174 сообщений
  • ФИО:Евгений
  • Город:Москва


Отправлено 17 октября 2014 - 14:48

 

 

Самое простое решение: @BeforeMethod и @AfterMethod заменить на @BeforeTest и @AfterTest. 

 

вот это помогло, спасибо !! правда не понял чем отличаются @AfterMethod и @AfterTest. между собой))

ассерт уже есть, я просто скинул пример теста

 

 

Вот тут есть хорошая статья по TestNG. Там в самом начале видна иерархия Suite и какой Before, After чем отличается. 

 

Если скопипастить то получается так:

+- before suite/
   +- before group/
      +- before test/
         +- before class/
            +- before method/
               +- test/
            +- after method/
            ...
         +- after class/
         ...
      +- after test/
      ...
   +- after group/
   ...
+- after suite/

Конкретно к Вашему примеру получается что у Вас один @Test и 5 методов по кол-ву данных от DataProvider. @BeforeMethod срабатывает перед каждым методом, а @BeforeTest только перед тестом.

 

Если заменили бы так, что оставили @AfterMethod то у Вас бы после каждого метода убивался бы браузер, а стартовать он будет только в @BeforeTest. В итоге один метод отработает, а все остальные упадут.


Сообщение отредактировал Keiga: 17 октября 2014 - 14:50

  • 0



Темы с аналогичным тегами webdriver, java, datadriver, datadrivertest

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных