Слушатели TestNG в Selenium: ITestListener & Пример ITestResult

Содержание:

Anonim

Есть два основных слушателя.

  1. Слушатели WebDriver
  2. Слушатели TestNG

В этом руководстве мы обсудим Testng Listeners. Вот что вы узнаете -

  • Что такое слушатели в TestNG?
  • Типы слушателей в TestNG
  • Сценарий тестирования:
  • Шаги по созданию слушателя TestNG
  • Использование Listener для нескольких классов.

Что такое слушатели в TestNG?

Слушатель определяется как интерфейс, который изменяет поведение TestNG по умолчанию. Как следует из названия, слушатели «слушают» событие, определенное в сценарии селена, и ведут себя соответствующим образом. Он используется в селене путем реализации интерфейса слушателей. Он позволяет настраивать отчеты или журналы TestNG. Доступно множество типов слушателей TestNG.

Типы слушателей в TestNG

Есть много типов слушателей, которые позволяют вам изменять поведение TestNG.

Ниже приведены несколько слушателей TestNG:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. IConfigurable,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

Вышеупомянутый интерфейс называется слушателями TestNG. Эти интерфейсы используются в селене для создания журналов или настройки отчетов TestNG.

В этом руководстве мы реализуем ITestListener.

ITestListener имеет следующие методы

  • OnStart- Метод OnStart вызывается при запуске любого теста.
  • onTestSuccess - метод onTestSuccess вызывается при успешном выполнении любого теста.
  • onTestFailure - метод onTestFailure вызывается при сбое любого теста.
  • onTestSkipped - метод onTestSkipped вызывается при пропуске любого теста.
  • onTestFailedButWithinSuccessPercentage - метод вызывается каждый раз, когда тест не проходит, но находится в пределах процента успеха.
  • onFinish - метод onFinish вызывается после выполнения всех тестов.

Сценарий тестирования:

В этом тестовом сценарии мы автоматизируем процесс входа в систему и реализуем ItestListener.

  1. Запустите Firefox и откройте сайт «http://demo.guru99.com/V4/».
  1. Войдите в приложение.

Шаги по созданию слушателя TestNG

Для приведенного выше тестового сценария мы реализуем Listener.

Шаг 1) Создайте класс ListenerTest, реализующий ITestListener. Наведите указатель мыши на текст пометки, и Eclipse предложит вам 2 быстрых исправления, как показано на экране ниже:

Просто нажмите «Добавить нереализованные методы». В код добавлено несколько нереализованных методов (без тела). Проверьте ниже-

пакет Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;открытый класс ListenerTest реализует ITestListener{@Overridepublic void onFinish (ITestContext arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onStart (ITestContext arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onTestFailure (ITestResult arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onTestSkipped (ITestResult arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onTestStart (ITestResult arg0) {// TODO Заглушка автоматически сгенерированного метода}@Overridepublic void onTestSuccess (ITestResult arg0) {// TODO Заглушка автоматически сгенерированного метода}}

Давайте изменим класс ListenerTest. В частности, мы изменим следующие методы:

onTestFailure, onTestSkipped, onTestStart, onTestSuccess и т. д.

Модификация проста. Мы просто печатаем название Test.

Журналы создаются в консоли. Пользователю легко понять, какой тест имеет статус «пройден», «не прошел» или «пропущен».

После модификации код выглядит так:

пакет Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;открытый класс ListenerTest реализует ITestListener{@Overridepublic void onFinish (результат ITestContext){}@Overridepublic void onStart (результат ITestContext){}@Overridepublic void onTestFailedButWithinSuccessPercentage (результат ITestResult){}// Когда тестовый пример не удался, вызывается этот метод.@Overridepublic void onTestFailure (результат ITestResult){System.out.println («Имя неудачного теста:» + Result.getName ());}// Когда тестовый пример пропущен, вызывается этот метод.@Overridepublic void onTestSkipped (результат ITestResult){System.out.println ("Имя пропущенного тестового примера: + Result.getName ());}// При запуске тестового примера вызывается этот метод.@Overridepublic void onTestStart (результат ITestResult){System.out.println (Result.getName () + «тестовый пример запущен»);}// Когда тестовый пример пройден, вызывается этот метод.@Overridepublic void onTestSuccess (результат ITestResult){System.out.println ("Имя пройденного теста: + Result.getName ());}}

Шаг 2) Создайте еще один класс TestCases для автоматизации процесса входа в систему. Selenium выполнит эти «TestCases» для автоматического входа в систему.

пакет Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Импортировать org.testng.annotations.Test;public class TestCases {Драйвер WebDriver = новый FirefoxDriver ();// Тест для прохождения, как для проверки слушателей.@Тестpublic void Login (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("пароль")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Принудительно провалил этот тест для проверки слушателя.@Тестpublic void TestToFail (){System.out.println («Этот метод проверки завершился неудачно»);Assert.assertTrue (ложь);}}

Шаг 3) Затем реализуйте этот слушатель в нашем обычном классе проекта, то есть «TestCases». Есть два разных способа подключения к классу и интерфейсу.

Первый способ - использовать аннотацию Listeners (@Listeners), как показано ниже:

@ Слушатели (Listener_Demo.ListenerTest.class) 

Мы используем это в классе TestCases, как показано ниже.

Итак, наконец, класс "TestCases" выглядит так, как после использования аннотации Listener:

пакет Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@ Слушатели (Listener_Demo.ListenerTest.class)public class TestCases {Драйвер WebDriver = новый FirefoxDriver ();// Тест для прохождения, как для проверки слушателей.@Тестpublic void Login (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("пароль")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Принудительно провалил этот тест как слушатель проверки.@Тестpublic void TestToFail (){System.out.println («Этот метод проверки завершился неудачно»);Assert.assertTrue (ложь);}}

Структура проекта выглядит так:

Шаг 4): Выполните класс «TestCases». Методы класса ListenerTest вызываются автоматически в соответствии с поведением методов, помеченных как @Test.

Шаг 5): Убедитесь, что вывод журналов отображается на консоли.

Вывод TestCases будет выглядеть так:

[TestNG] Выполняется:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlТестовый пример входа запущенНазвание пройденного теста: ВойтиТестовый пример TestToFail запущенЭтот метод проверки не пройденИмя неуспешного теста: TestToFail.ВЫПОЛНЕНО: ВойтиНЕ ВЫПОЛНЕНО: TestToFailjava.lang.AssertionError: ожидалось [true], но найдено [false] 

Использование Listener для нескольких классов.

Если в проекте есть несколько классов, добавление слушателей к каждому из них может быть громоздким и подверженным ошибкам.

В таких случаях мы можем создать testng.xml и добавить тег слушателей в XML.

Этот слушатель реализован во всем наборе тестов, независимо от количества имеющихся у вас классов. Когда вы запустите этот XML-файл, слушатели будут работать со всеми упомянутыми классами. Вы также можете объявить любое количество классов слушателей.

Резюме:

Слушатели необходимы для создания журналов или настройки отчетов TestNG в Selenium Webdriver.

  • Есть много типов слушателей, и их можно использовать в соответствии с требованиями.
  • Слушатели - это интерфейсы, используемые в скрипте веб-драйвера selenium.
  • Продемонстрировано использование Listener в Selenium.
  • Реализованы слушатели для нескольких классов.