atesting.ru Блог Как запустить неудачные тестовые примеры с помощью TestNG в Selenium WebDriver

Как запустить неудачные тестовые примеры с помощью TestNG в Selenium WebDriver

Запуск неудачных тестовых случаев с помощью TestNG в Selenium WebDriver:

Иногда тестовые примеры могут завершаться неудачно при выполнении автоматизированных тестовых скриптов. Причина может быть в чем угодно (например, проблема с сетью, проблема с системой или проблема с браузером), но как тестировщик автоматизации вам необходимо снова выполнить тестовые сценарии. Вот решение для запуска неудачных тестовых случаев с использованием TestNG в Selenium.

Разве вы не хотите сделать снимок экрана при сбое и прикрепить его к своему отчету?

Да, в качестве тестеру нам нужно фиксировать неудачные шаги. В этой статье вы узнаете, «Как сделать снимок экрана и вставить его в отчеты об объемах».

Мы можем выполнить неудачные тестовые сценарии двумя способами.

Случай 1. Выполните неудачные тестовые примеры с помощью TestNG в Selenium — с помощью «testng-failed.xml»

Действия, которые необходимо выполнить:

  1. После первого запуска автоматического тестового запуска. Щелкните правой кнопкой мыши «Проект» — нажмите «Обновить».
  2. Будет создана папка с именем «test-output». Внутри папки «test-output» вы можете найти «testng-failed.xml».
  3. Запустите «testng-failed.xml», чтобы снова выполнить неудачные тестовые примеры.

< p>

 Как запустить неудачные тестовые примеры с помощью TestNG в Selenium WebDriver

Случай 2: выполнить неудачные тестовые случаи с помощью TestNG в Selenium — путем реализации TestNG IRetryAnalyzer.

Создайте класс для реализации IRetryAnalyzer. Здесь я создаю класс (скажем, RetryFailedTestCases) и реализую IRetryAnalyzer.

RetryFailedTestCases реализует IRetryAnalyzer:

123456789101112131415161718192021 программный пакетTestingMaterial; import org.testng.IRetryAnalyzer; import org.testng.ITestResult; открытый класс RetryFailedTestCases реализует IRetryAnalyzer {private int retryCnt = 0; //Вы можете упомянуть maxRetryCnt (Maximiun Retry Count) в соответствии с вашими требованиями. Здесь я взял 2, если какие-то неудачные тестовые примеры, то он запускается дважды private int maxRetryCnt = 2; //Этот метод будет вызываться каждый раз, когда тест не пройден. Он вернет TRUE, если тест завершится неудачно и его необходимо повторить, иначе он вернет FALSE публичное логическое повторение (результат ITestResult) {if (retryCnt & lt; maxRetryCnt) {System.out.println (& # 34; Retrying & # 34; + result.getName () + & # 34; снова, и счет будет & # 34; + (retryCnt + 1)); retryCnt ++; вернуть истину; } Return false; }}

Давайте создадим еще один класс RetryListenerClass, реализовав интерфейс IAnnotationTransaformer. Метод преобразования вызывается для каждого теста во время выполнения теста. Простая реализация интерфейса IAnnotationTransformer может помочь нам установить setRetryAnalyzer для ITestAnnotation. Добавьте указанное выше имя класса (RetryFailedTestCases.class) в программу ниже. Этот интерфейс выполняет свою работу во время выполнения, добавляя аннотации к методам тестирования.

RetryListenerClass реализует IAnnotationTransformer:

1234567891011121314151617181920 пакет softwareTestingMaterial; импорт java.lang.reflect.Constructor; импорт java.lang.reflect.Method; import org.testng.IAnnotationTransformer; import org.testng.IRetryAnalyzer; import org.testng.annotations.ITestAnnotation; открытый класс RetryListenerClass реализует IAnnotationTransformer {@Override общедоступное преобразование void (ITestAnnotation testannotation, класс testClass, конструктор testConstructor, метод testMethod) {IRetryAnalyzer retry = testannotation.getRetryAnalyzer (); если (retry == null) {testannotation.setRetryAnalyzer (RetryFailedTestCases.class); }}}

Давайте посмотрим на пример, выполнив простые тесты ниже. Здесь я взял два тестовых примера, например Test1 и Test2.

Testcase 1:

1234567891011121314 пакет softwareTestingMaterial; import org.testng.Assert; import org.testng.annotations.Test; открытый класс Test1 {@Test public void test1 () {System.out.println (& # 34; Test 1 & # 34;); Assert.assertTrue (истина); }}

Тестовый пример 2:

123456789101112 пакет softwareTestingMaterial; import org.testng.Assert; import org.testng.annotations.Test; открытый класс Test2 {@Test public void test2 () {System.out.println (& # 34; Test 2 & # 34;); Assert.assertTrue (ложь); }}

Согласно строкам кода в Test2, это не удастся. Таким образом, он (Test2) будет выполнен 2 раза (мы взяли maxRetryCnt как 2) в классе повторов. Сначала давайте включим указанный ниже прослушиватель в файл testng.xml. Ниже упомянутый синтаксис — добавить прослушиватель для RetryListnereClass

123 & lt; listeners & gt; & lt; listener class-name = & # 34; softwareTestingMaterial.RetryListenerClass & # 34;/& gt; & lt;/listeners & gt;

Окончательный файл testng.xml должен выглядит как показано ниже:

12345678910111213141516171819202122 & lt;? xml version = & # 34; 1.0 & # 34; encoding = & # 34; UTF-8 & # 34;? & gt; & lt;! DOCTYPE suite SYSTEM & # 34; http: //testng.org/testng-1.0.dtd" & gt; & lt; suite name = & # 34; Мой люкс & # 34; & gt; & lt; слушатели & gt; & lt; listener class-name = & # 34; softwareTestingMaterial.RetryListenerClass & # 34;/& gt; & lt;/listeners & gt; & lt; test name = & # 34; Test1 & # 34; & gt; & lt; классы & gt; & lt; class name = & # 34; softwareTestingMaterial.Test1 & # 34;/& gt; & lt;/classes & gt; & lt;/test & gt; & lt;! — Тест — & gt; & lt; test name = & # 34; Test2 & # 34; & gt; & lt; классы & gt; & lt; class name = & # 34; softwareTestingMaterial.Test2 & # 34;/& gt; & lt;/classes & gt; & lt;/test & gt; & lt;! — Тест — & gt; & lt;/suite & gt; & lt;! — Люкс — & gt;

Запустите testng.xml. Вот результат, который я получил. Вы можете видеть в приведенном ниже результате, что Тест 2 выполняется три раза, как мы уже упоминали «maxRetryCnt = 2». Несмотря на то, что у нас всего 2 теста, мы можем обнаружить, что общее количество запусков в результате составляет 4.

< tr class = "crayon-row">

1234567891011121314 [TestNG] Выполняется: D: Selenium workspace SeleniumProject testng.xml Тест 1 Тест 2 Повторная попытка теста 2 снова, счетчик равен 1 Тест 2 Повторная попытка теста 2 еще раз, а счет равен 2 Тест 2 ======================= ======================== Everjobs SuiteВсего выполненных тестов: 4, сбоев: 1, пропусков: 2 ============ знак равно ==================================

Таким образом, мы могли запускать неудачные тестовые примеры с помощью TestNG в Selenium.

Полное руководство по TestNG с видео

TAG: qa