Слухачі TestNG у селені: ITestListener & Приклад ITestResult

Зміст:

Anonim

Є два основних слухача.

  1. Слухачі WebDriver
  2. Слухачі TestNG

У цьому підручнику ми поговоримо про слухачів Testng. Ось що ви дізнаєтесь -

  • Що таке слухачі в TestNG?
  • Типи слухачів у TestNG
  • Сценарій тесту:
  • Кроки для створення прослуховувача TestNG
  • Використання слухача для кількох класів.

Що таке слухачі в TestNG?

Слухач визначається як інтерфейс, який змінює поведінку TestNG за замовчуванням. Як випливає з назви, слухачі "слухають" подію, визначену в сценарії селену, і поводяться відповідно. Він використовується в селені шляхом реалізації інтерфейсу слухачів. Це дозволяє налаштувати звіти або журнали TestNG. Доступно багато типів слухачів TestNG.

Типи слухачів у TestNG

Існує багато типів слухачів, що дозволяє змінити поведінку TestNG.

Нижче наведено кілька слухачів TestNG:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. ICконфігурується,
  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;імпорт org.testng.ITestContext;імпорт org.testng.ITestListener;імпорт 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 тощо.

Модифікація проста. Ми просто друкуємо назву тесту.

Журнали створюються в консолі. Користувачеві легко зрозуміти, який тест - це проходження, провал і пропуск стану.

Після модифікації код виглядає як-

пакет Listener_Demo;імпорт org.testng.ITestContext;імпорт org.testng.ITestListener;імпорт org.testng.ITestResult;публічний клас ListenerTest реалізує ITestListener{@Overrideпублічна порожнеча onFinish (результат ITestContext){}@Overridepublic void onStart (результат ITestContext){}@Overridepublic void onTestFailedButWithinSuccessPercentage (Результат результату ITestResult){}// Коли тестовий випадок не вдався, викликається цей метод.@Overrideпублічна порожнеча onTestFailure (Результат ITestResult){System.out.println ("Ім'я тесту не вдалося: + Result.getName ());}// Коли тест-кейс пропускається, викликається цей метод.@Overridepublic void onTestSkipped (Результат ITestResult){System.out.println ("Назва пропущеного тесту: + Result.getName ());}// Коли тест-кейс починається, викликається цей метод.@Overridepublic void onTestStart (ITestResult Result){System.out.println (Result.getName () + "запущений тест");}// Коли проходить тестовий випадок, викликається цей метод.@Overrideпублічна порожнеча onTestSuccess (результат ITestResult){System.out.println ("Ім'я пройденого тесту: + Result.getName ());}}

Крок 2) Створіть ще один клас "TestCases" для автоматизації процесу входу. Selenium виконає цей «TestCases» для автоматичного входу.

пакет Listener_Demo;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.testng.Assert;імпорт org.testng.annotations.Listeners;Імпорт org.testng.annotations.Test;публічний клас 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 (false);}}

Крок 3) Далі впровадьте цей прослуховувач у наш звичайний клас проекту, тобто "TestCases". Існує два різні способи підключення до класу та інтерфейсу.

Перший спосіб - використовувати анотацію слухачів (@Listeners), як показано нижче:

@Listeners (Listener_Demo.ListenerTest.class) 

Ми використовуємо це в класі "TestCases", як показано нижче.

Отже, нарешті, клас "TestCases" виглядає так після використання анотації слухача:

пакет Listener_Demo;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.testng.Assert;імпорт org.testng.annotations.Listeners;імпорт org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.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 (false);}}

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

Крок 4): Виконайте клас "TestCases". Методи в класі "ListenerTest" викликаються автоматично відповідно до поведінки методів, позначених як @Test.

Крок 5): Перевірте вихідні дані, які журнали відображаються на консолі.

Результат роботи "TestCases" буде виглядати так:

[TestNG] Запуск:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlТестовий кейс для входу в систему розпочатоІм'я пройденого тестового випадку: LoginРозпочато тест TestToFailЦей метод перевірки не вдавсяНе вдалося назвати тестовий файл: TestToFailПРОЙДЕНО: ВхідПОМИЛКА: TestToFailjava.lang.AssertionError: очікувано [true], але знайдено [false] 

Використання слухача для кількох класів.

Якщо проект має кілька класів, додавання слухачів до кожного з них може бути громіздким та схильним до помилок.

У таких випадках ми можемо створити testng.xml і додати тег слухачів у XML.

Цей прослуховувач реалізований у всьому наборі тестів, незалежно від кількості класів, які у вас є. Коли ви запускаєте цей XML-файл, слухачі працюватимуть над усіма згаданими класами. Ви також можете оголосити будь-яку кількість класів слухачів.

Короткий зміст:

Слухачі повинні створювати журнали або налаштовувати звіти TestNG у Selenium Webdriver.

  • Існує багато типів слухачів, і їх можна використовувати відповідно до вимог.
  • Слухачі - це інтерфейси, що використовуються у сценарії веб-драйвера селену
  • Продемонстрував використання слухача в селені
  • Реалізовано слухачі для декількох класів