Есть два основных слушателя.
- Слушатели WebDriver
- Слушатели TestNG
В этом уроке мы обсудим слушателей Testng . Вот что вы узнаете
- Что такое слушатели в TestNG?
- Типы слушателей в TestNG
- Тестовый сценарий:
- Шаги для создания прослушивателя TestNG
- Использование Listener для нескольких классов.
Что такое слушатели в TestNG?
Слушатель определяется как интерфейс, который изменяет поведение TestNG по умолчанию. Как следует из названия, слушатели «слушают» событие, определенное в сценарии селена, и ведут себя соответственно. Это используется в селене, реализуя Интерфейс Слушателей. Это позволяет настраивать отчеты и журналы TestNG. Есть много типов слушателей TestNG.
Типы слушателей в TestNG
Есть много типов слушателей, которые позволяют вам изменить поведение TestNG.
Ниже приведены несколько слушателей TestNG:
- InnotationTransformer,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Выше интерфейс называется TestNG Listeners. Эти интерфейсы используются в Селене для создания журналов или настройки отчетов 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 быстрых исправления, как показано на экране ниже:
Просто нажмите «Добавить невыполненные методы». В код добавлено несколько не реализованных методов (без тела). Проверьте ниже-
package Listener_Demo;
import org.testng.ITestContext ;
import org.testng.ITestListener ;
import org.testng.ITestResult ;
public class ListenerTest implements ITestListener
{
@Override
public void onFinish(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStart(ITestContext arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestFailure(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSkipped(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestStart(ITestResult arg0) {
// TODO Auto-generated method stub
}
@Override
public void onTestSuccess(ITestResult arg0) {
// TODO Auto-generated method stub
}
}
Давайте изменим класс «ListenerTest». В частности, мы изменим следующие методы:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
Модификация проста. Мы просто печатаем название теста.
Журналы создаются в консоли. Пользователю легко понять, какой тест является пройденным, неудачным и пропущенным.
После модификации код выглядит так:
package Listener_Demo;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class ListenerTest implements ITestListener
{
@Override
public void onFinish(ITestContext Result)
{
}
@Override
public void onStart(ITestContext Result)
{
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult Result)
{
}
// When Test case get failed, this method is called.
@Override
public void onTestFailure(ITestResult Result)
{
System.out.println("The name of the testcase failed is :"+Result.getName());
}
// When Test case get Skipped, this method is called.
@Override
public void onTestSkipped(ITestResult Result)
{
System.out.println("The name of the testcase Skipped is :"+Result.getName());
}
// When Test case get Started, this method is called.
@Override
public void onTestStart(ITestResult Result)
{
System.out.println(Result.getName()+" test case started");
}
// When Test case get passed, this method is called.
@Override
public void onTestSuccess(ITestResult Result)
{
System.out.println("The name of the testcase passed is :"+Result.getName());
}
}
Шаг 2) Создайте еще один класс «TestCases» для автоматизации процесса входа в систему. Selenium выполнит этот «TestCases» для автоматического входа в систему.
package 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;
public class TestCases {
WebDriver driver= new FirefoxDriver();
// Test to pass as to verify listeners .
@Test
public void Login()
{
driver.get("http://demo.guru99.com/V4/");
driver.findElement(By.name("uid")).sendKeys("mngr34926");
driver.findElement(By.name("password")).sendKeys("amUpenu");
driver.findElement(By.name("btnLogin")).click();
}
// Forcefully failed this test as to verify listener.
@Test
public void TestToFail()
{
System.out.println("This method to test fail");
Assert.assertTrue(false);
}
}
Шаг 3) Затем, внедрите этот слушатель в наш обычный класс проекта, то есть «TestCases». Существует два разных способа подключения к классу и интерфейсу.
Первый способ — использовать аннотацию Listeners (@Listeners), как показано ниже:
@Listeners(Listener_Demo.ListenerTest.class)
Мы используем это в классе «TestCases», как показано ниже.
Итак, наконец, класс «TestCases» выглядит после использования аннотации Listener:
package 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;
@Listeners(Listener_Demo.ListenerTest.class)
public class TestCases {
WebDriver driver= new FirefoxDriver();
//Test to pass as to verify listeners.
@Test
public void Login()
{
driver.get("http://demo.guru99.com/V4/");
driver.findElement(By.name("uid")).sendKeys("mngr34926");
driver.findElement(By.name("password")).sendKeys("amUpenu");
driver.findElement(By.id("")).click();
}
//Forcefully failed this test as verify listener.
@Test
public void TestToFail()
{
System.out.println("This method to test fail");
Assert.assertTrue(false);
}
}
Структура проекта выглядит так:
Шаг 4): Выполнить класс «TestCases». Методы в классе «ListenerTest» вызываются автоматически в соответствии с поведением методов, аннотированных как @Test.
Шаг 5). Убедитесь, что вывод, который регистрируется, отображается на консоли.
Вывод ‘TestCases’ будет выглядеть так:
[TestNG] Running: C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml Login Test Case started The name of the testcase passed is:Login TestToFail test case started This method to test fail The name of the testcase failed is:TestToFail PASSED: Login FAILED: TestToFail java.lang.AssertionError: expected [true] but found [false]
Использование Listener для нескольких классов.
Если в проекте есть несколько классов, добавление Listeners к каждому из них может быть громоздким и подверженным ошибкам.
В таких случаях мы можем создать testng.xml и добавить тег listeners в XML.
Этот слушатель реализован во всем наборе тестов, независимо от количества классов, которые у вас есть. Когда вы запустите этот XML-файл, слушатели будут работать со всеми упомянутыми классами. Вы также можете объявить любое количество класса слушателя.
Резюме:
Слушатели должны создавать журналы или настраивать отчеты TestNG в Selenium Webdriver.
- Есть много типов слушателей и могут использоваться согласно требованиям.
- Слушатели — это интерфейсы, используемые в скрипте селена.
- Продемонстрировал использование Listener в Selenium
- Реализовал Слушатели для нескольких классов






