проверка состояния теста
#1
Отправлено 15 марта 2012 - 10:34
т.е при условии, что тест падает, мне необходимо делать скриншот...так вот как из кода проверить прошел тест или нет ?.. есть ли вообще такая возможность, ибо писать if в каждом методе как-то не айс.
заранее благодарен
#2
Отправлено 15 марта 2012 - 10:40
Можно создать свой TestListener и в методе onTestFailure делать скрин.при написания некоторых тестов в связке селениум+тестнг возникла потребность узнавать завалился тест или нет...
т.е при условии, что тест падает, мне необходимо делать скриншот...так вот как из кода проверить прошел тест или нет ?.. есть ли вообще такая возможность, ибо писать if в каждом методе как-то не айс.
заранее благодарен
инфа тут http://testng.org/ja...stListener.html
#3
Отправлено 15 марта 2012 - 11:03
пока читал про листенер наткнулся на интересную штуку, в итоге реализация выглядит примерно так :
@AfterMethod
public void AfterMethod(ITestResult result) {
if (!result.isSuccess()) {
Screenshot.makeScreenshot();
}
firefox.close();
}
две строчки решили весь мой вопрос :)
#4
Отправлено 15 марта 2012 - 13:10
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого метода
#5
Отправлено 16 марта 2012 - 07:53
Какая-то странная логика у вашего приложения. Вначале закрываем браузер, а потом кликаем по алерту. Может лучше эти два действия поменять местами? :)возник вопрос вот такого характера :
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого метода
public void closeBrowser() { try { Alert alert = driver.switchTo().alert(); alert.accept(); } catch (Exception e) { // Ничего не делаем. Просто алерта в этот раз не было. } driver.close(); }
#6
Отправлено 16 марта 2012 - 11:52
Какая-то странная логика у вашего приложения. Вначале закрываем браузер, а потом кликаем по алерту. Может лучше эти два действия поменять местами? :)
возник вопрос вот такого характера :
если возможность проверить, что например файерфокс закрыт. дело в том что есть два метода…изначально работает один и он закрывает браузер…но браузер закрывается не всегда, ибо ему иногда мешает всплывающий алерт..а второй метод как-раз и кликает по алерту…так вот, хочется проверить, закрылось ли окно браузера или нет после работы первого методаpublic void closeBrowser() { try { Alert alert = driver.switchTo().alert(); alert.accept(); } catch (Exception e) { // Ничего не делаем. Просто алерта в этот раз не было. } driver.close(); }
есть BeforeMethod и там происходит driver.close(),а после его выполнения идет BeforeTest, в котором я должен кликнуть по алерту “Точно ли вы хотите выйти с этой страницы”. Дело в том, что алерт сам по себе всплывает как-то рандомно, и, соответственно, если алерт не выскочил и файерфокс удачно закрылся - BeforeTest падает... т.е тест проходит хорошо, а валится лишь аннотация одна
#7
Отправлено 16 марта 2012 - 12:15
#8
Отправлено 16 марта 2012 - 12:29
а почему вы не хотите проверять наличие окна фаерфокса с определённым названием? Есть окно - браузер открыт, нет окна - закрыт
дело в том, что тестируется порядка 10 страниц... 100% алерт выскакивает только на одной...
на остальных же - рандом. как я думаю, зависит ,будет алерт или нет, от скорости моего инета...ибо если не все елементы подгрузились, а нужный мне уже есть и тест прошел - то браузер может и не закрыться. и вот именно это и надо как-нить выяснить.. просто я думаю, что может есть более изящный способ проверки, чем писать проверку для имени каждой конкретной страницы.
#9
Отправлено 16 марта 2012 - 12:52
пошел другим путем и написал обработчик для алерта...
т.е после закрытия он просто ждет и если алерта нету - все ок и наоборот...
если кому интересно, могу поделиться кодом :)
всем спасибо за помощь !
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных