Перезапуск упавших (failed) тестов c использованием TestNG

Перезапуск упавших (failed) тестов c использованием TestNG

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Всем привет. Сегодня решил вернутся к теме TestNG и каснуться возможности перезапуска тестов в случае, если первый раз определенный тест “зафейлился”. Когда это имеет смысл? Я бы сказал тогда, когда мы тестируем приложение с большим объемом “рендомного” контента, данных, которые не всегда возможно покрыть проверками даже полного A\B тестирования. Например, автоматизируя интернет-магазин с кучей товаров, которые не всегда имеют изображение, описание и т.д в процессе разработки. В этом случае имеет смысл перезапускать упавшие тесты в связи с корявыми тестовыми данными.

Мы можем написать свой класс, который после фейла теста(ов) будет снова перезапускать его(их) n-ое количество раз и проверять обновленные результаты. Для достижения этого понадобится реализовать TestNG IRetryAnalyzer. Внизу кусок кода:

Также нам понадобиться внедрить класс RetryListener для использовании аннотации @Test(retryAnalyzer=Retry.class), которую нужно использовать для перезапуска тестов.

Давайте выполним два простых теста. Проверим неправильный текст, который вернет False и тест упадет. Таким образом, второй тест будет повторно выполнен такое количество раз, которое присваивается переменной maxRetryCount в классе Retry.

Также нам понадобится добавить Listener в файл testng.xml.

После запуска тестов вывод в консоли примет следующий вид:

testng1

Тест verifyForgotPasswordPage будет выполнен дважды, так как мы указали “maxRetryCount = 1″ и первый раз тест упал. Теперь суммарное количество тестов будет иметь значение 3, зафейлиных (Failures) – 2.  Но в реальности мы имеем только 2 теста. Кому это не нравится, тот может установить переменную count путем внедрения интерфейса ITestListenerand и обновить количество в методе onFinish. Напишу об этом в следующей статье.

Спасибо за прочтение и подписывайтесь на рассылку!

Связанные статьи