Є два основних слухача.
- Слухачі WebDriver
- Слухачі TestNG
У цьому підручнику ми поговоримо про слухачів Testng. Ось що ви дізнаєтесь -
- Що таке слухачі в TestNG?
- Типи слухачів у TestNG
- Сценарій тесту:
- Кроки для створення прослуховувача TestNG
- Використання слухача для кількох класів.
Що таке слухачі в TestNG?
Слухач визначається як інтерфейс, який змінює поведінку TestNG за замовчуванням. Як випливає з назви, слухачі "слухають" подію, визначену в сценарії селену, і поводяться відповідно. Він використовується в селені шляхом реалізації інтерфейсу слухачів. Це дозволяє налаштувати звіти або журнали TestNG. Доступно багато типів слухачів TestNG.
Типи слухачів у TestNG
Існує багато типів слухачів, що дозволяє змінити поведінку TestNG.
Нижче наведено кілька слухачів TestNG:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- ICконфігурується,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Вище інтерфейси називаються слухачами TestNG. Ці інтерфейси використовуються в селені для створення журналів або налаштування звітів TestNG.
У цьому посібнику ми застосуємо ITestListener.
ITestListener має наступні методи
- OnStart - метод OnStart викликається, коли починається будь-який тест.
- onTestSuccess - метод onTestSuccess викликається для успіху будь-якого тесту.
- onTestFailure - метод onTestFailure викликається при відмові будь-якого тесту.
- onTestSkipped - метод onTestSkipped викликається при пропуску будь-якого тесту.
- onTestFailedButWithinSuccessPercentage - метод викликається кожного разу, коли тест не вдається, але знаходиться в межах відсотка успіху.
- onFinish- метод onFinish викликається після виконання всіх тестів.
Сценарій тесту:
У цьому тестовому сценарії ми автоматизуємо процес входу та застосуємо "ItestListener".
- Запустіть Firefox і відкрийте сайт "http://demo.guru99.com/V4/"
- Увійдіть до програми.
Кроки для створення прослуховувача 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.
- Існує багато типів слухачів, і їх можна використовувати відповідно до вимог.
- Слухачі - це інтерфейси, що використовуються у сценарії веб-драйвера селену
- Продемонстрував використання слухача в селені
- Реалізовано слухачі для декількох класів