Запуск неудачных тестовых наборов с помощью TestNG в Selenium WebDriver
Иногда тестовые наборы могут завершаться сбоем при запуске автоматических тестовых сценариев. Причина может быть любой (например, проблема с сетью, проблема с системой или проблема с браузером), но вам, как тестировщику автоматизации, необходимо снова выполнить тестовые сценарии. Вот решение для запуска неудачных тестовых случаев с помощью TestNG в Selenium.
Вы не хотите сделать снимок экрана при ошибке и прикрепить его к своему отчету?
Да, как тестер, мы должны зафиксировать неудачные шаги. Этот пост расскажет вам, как сделать снимок экрана и вставить его в экстентные отчеты.
Мы можем выполнить неудачные тестовые случаи двумя способами.
Случай 1. Выполнение неудачных тестовых случаев с помощью TestNG в Selenium — с помощью «testng-failed.xml»
Действующие шаги:
- После первого запуска автоматизированного тестового прогона. Щелкните правой кнопкой мыши проект — нажмите «Обновить»
- Будет создана папка с именем «test-output». Внутри папки «test-output» вы можете найти «testng-failed.xml».
- Запустите «testng-failed.xml», чтобы снова выполнить неудачные тестовые случаи.
Кейс 2. Выполнение неудачных тестовых случаев с использованием TestNG в Selenium — путем реализации TestNG IRetryAnalyzer.
Создайте класс для реализации IRetryAnalyzer. Здесь я создаю класс (скажем, RetryFailedTestCases) и реализую IRetryAnalyzer.
RetryFailedTestCases реализует IRetryAnalyzer:
123456789101112131415161718192021 | пакет программного обеспечения TestingMaterial; импортировать org.testng.IRetryAnalyzer; импортировать org.testng.ITestResult; открытый класс RetryFailedTestCases реализует IRetryAnalyzer { private int retryCnt = 0; //Вы можете упомянуть maxRetryCnt (Maximiun Retry Count) в соответствии с вашими требованиями. Здесь я взял 2. Если есть какие-то неудачные тесты, то он выполняется два раза private int maxRetryCnt = 2; //Этот метод будет вызываться каждый раз, когда тест не пройден. Он вернет TRUE, если тест не пройден и его необходимо повторить, в противном случае он вернет FALSE public boolean retry(ITestResult result) { if (retryCnt < maxRetryCnt) { System.out.println(“Retrying” + result.getName() + ” снова, и счет равен ” + (retryCnt+1)); повторить попыткуCnt++; вернуть истину; } вернуть false; } }таблица>
Давайте создадим еще один класс RetryListenerClass, реализуя интерфейс IAnnotationTransaformer. Метод преобразования вызывается для каждого теста во время выполнения теста. Простая реализация этого интерфейса IAnnotationTransformer может помочь нам установить setRetryAnalyzer для ITestAnnotation. Добавьте указанное выше имя класса (RetryFailedTestCases.class) в приведенную ниже программу. Этот интерфейс выполняет свою работу во время выполнения, добавляя аннотации к методам тестирования. RetryListenerClass реализует IAnnotationTransformer:
Давайте посмотрим на пример, выполнив простые тесты ниже. Здесь я взял два тестовых примера: Test1 и Test2. Тестовый пример 1:
Тестовый пример 2:
Судя по строкам кода в Test2, это не удастся. Таким образом, он (Test2) будет выполнен 2 раза (мы взяли maxRetryCnt за 2) в Retry Class. Сначала давайте включим нижеупомянутый Listener в файл testng.xml. Ниже указан синтаксис для добавления прослушивателя для RetryListnereClass
Окончательный файл testng.xml должен выглядеть следующим образом:
< p> Выполните testng.xml. Вот результат, который я получил. В приведенном ниже результате вы могли видеть, что тест 2 выполняется три раза, поскольку мы упомянули «maxRetryCnt = 2». Несмотря на то, что у нас всего 2 теста, в результате мы можем обнаружить, что общее количество прогонов тестов равно 4.
|