Oyentes de TestNG en Selenium: ITestListener & Ejemplo de ITestResult

Tabla de contenido:

Anonim

Hay dos oyentes principales.

  1. Oyentes de WebDriver
  2. Oyentes de TestNG

En este tutorial, discutiremos sobre Testng Listeners. Esto es lo que aprenderá:

  • ¿Qué son los oyentes en TestNG?
  • Tipos de oyentes en TestNG
  • Escenario de prueba:
  • Pasos para crear un oyente de TestNG
  • Uso de Listener para múltiples clases.

¿Qué son los oyentes en TestNG?

El oyente se define como la interfaz que modifica el comportamiento predeterminado de TestNG. Como sugiere el nombre, los oyentes "escuchan" el evento definido en el script de selenio y se comportan en consecuencia. Se utiliza en selenio mediante la implementación de la interfaz de escucha. Permite personalizar informes o registros de TestNG. Hay muchos tipos de oyentes de TestNG disponibles.

Tipos de oyentes en TestNG

Hay muchos tipos de oyentes que le permiten cambiar el comportamiento de TestNG.

A continuación se muestran los pocos oyentes de TestNG:

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

La interfaz anterior se denomina oyentes TestNG. Estas interfaces se utilizan en selenio para generar registros o personalizar los informes de TestNG.

En este tutorial, implementaremos ITestListener.

ITestListener tiene los siguientes métodos

  • OnStart : se llama al método OnStart cuando se inicia cualquier prueba.
  • onTestSuccess : se llama al método onTestSuccess cuando una prueba tiene éxito.
  • onTestFailure : se llama al método onTestFailure cuando falla cualquier prueba.
  • onTestSkipped : se llama al método onTestSkipped cuando se omite cualquier prueba.
  • El método onTestFailedButWithinSuccessPercentage- se llama cada vez que la prueba falla, pero está dentro del porcentaje de éxito.
  • Se llama al método onFinish- onFinish después de que se ejecutan todas las pruebas.

Escenario de prueba:

En este escenario de prueba, automatizaremos el proceso de inicio de sesión e implementaremos el 'ItestListener'.

  1. Inicie Firefox y abra el sitio "http://demo.guru99.com/V4/"
  1. Inicie sesión en la aplicación.

Pasos para crear un oyente de TestNG

Para el escenario de prueba anterior, implementaremos Listener.

Paso 1) Cree la clase "ListenerTest" que implemente 'ITestListener'. Mueva el mouse sobre el texto de la línea roja y Eclipse le sugerirá 2 soluciones rápidas como se muestra en la siguiente pantalla:

Simplemente haga clic en "Agregar métodos no implementados". Se agregan al código varios métodos no implementados (sin cuerpo). Verifique a continuación

package Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;ListenerTest de clase pública implementa ITestListener{@Anularpublic void onFinish (ITestContext arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onStart (ITestContext arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onTestFailure (ITestResult arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onTestSkipped (ITestResult arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onTestStart (ITestResult arg0) {// TODO código auxiliar de método generado automáticamente}@Anularpublic void onTestSuccess (ITestResult arg0) {// TODO código auxiliar de método generado automáticamente}}

Modifiquemos la clase 'ListenerTest'. En particular, modificaremos los siguientes métodos:

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

La modificación es sencilla. Simplemente imprimimos el nombre de la prueba.

Los registros se crean en la consola. Es fácil para el usuario comprender qué prueba es un estado de aprobación, falla y omisión.

Después de la modificación, el código se ve así:

package Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;ListenerTest de clase pública implementa ITestListener{@Anularpublic void onFinish (resultado de ITestContext){}@Anularpublic void onStart (resultado de ITestContext){}@Anularpublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Cuando el caso de prueba falla, se llama a este método.@Anularpublic void onTestFailure (resultado de ITestResult){System.out.println ("El nombre del caso de prueba fallido es: + Result.getName ());}// Cuando se omite el caso de prueba, se llama a este método.@Anularpublic void onTestSkipped (resultado de ITestResult){System.out.println ("El nombre del caso de prueba omitido es: + Result.getName ());}// Cuando se inicia el caso de prueba, se llama a este método.@Anularpublic void onTestStart (resultado de ITestResult){System.out.println (Result.getName () + "caso de prueba iniciado");}// Cuando se pasa el caso de prueba, se llama a este método.@Anularpublic void onTestSuccess (resultado de ITestResult){System.out.println ("El nombre del caso de prueba pasado es: + Result.getName ());}}

Paso 2) Cree otra clase "TestCases" para la automatización del proceso de inicio de sesión. Selenium ejecutará este 'TestCases' para iniciar sesión automáticamente.

package Listener_Demo;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Importar org.testng.annotations.Test;TestCases de clase pública {Controlador WebDriver = nuevo FirefoxDriver ();// Prueba para pasar como para verificar los oyentes.@Pruebainicio de sesión vacío público (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("contraseña")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Falló esta prueba a la fuerza para verificar el oyente.@PruebaTestToFail vacío público (){System.out.println ("Este método para probar falla");Assert.assertTrue (falso);}}

Paso 3) A continuación, implemente este oyente en nuestra clase de proyecto regular, es decir, "TestCases". Hay dos formas diferentes de conectarse a la clase y la interfaz.

La primera forma es usar la anotación Listeners (@Listeners) como se muestra a continuación:

@Listeners (Listener_Demo.ListenerTest.class) 

Usamos esto en la clase "TestCases" como se muestra a continuación.

Entonces, finalmente, la clase "TestCases" se ve después de usar la anotación Listener:

package Listener_Demo;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)TestCases de clase pública {Controlador WebDriver = nuevo FirefoxDriver ();// Prueba para pasar como para verificar los oyentes.@Pruebainicio de sesión vacío público (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("contraseña")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Falló esta prueba a la fuerza como escucha de verificación.@PruebaTestToFail vacío público (){System.out.println ("Este método para probar falla");Assert.assertTrue (falso);}}

La estructura del proyecto se ve así:

Paso 4): Ejecute la clase "TestCases". Los métodos de la clase "ListenerTest" se llaman automáticamente de acuerdo con el comportamiento de los métodos anotados como @Test.

Paso 5): Verifique la salida que muestra los registros en la consola.

La salida de los 'TestCases' se verá así:

[TestNG] En ejecución:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlInicio de sesión de prueba de casoEl nombre del caso de prueba aprobado es: Iniciar sesiónSe inició el caso de prueba TestToFailEste método para probar fallaEl nombre del caso de prueba fallido es: TestToFailAPROBADO: Iniciar sesiónFALLIDO: TestToFailjava.lang.AssertionError: esperado [verdadero] pero encontrado [falso] 

Uso de Listener para múltiples clases.

Si el proyecto tiene varias clases, agregar oyentes a cada una de ellas podría ser engorroso y propenso a errores.

En tales casos, podemos crear un testng.xml y agregar etiquetas de escucha en XML.

Este oyente se implementa en todo el conjunto de pruebas independientemente del número de clases que tenga. Cuando ejecute este archivo XML, los oyentes trabajarán en todas las clases mencionadas. También puede declarar cualquier número de clase de escucha.

Resumen:

Los oyentes deben generar registros o personalizar los informes de TestNG en Selenium Webdriver.

  • Hay muchos tipos de oyentes y se pueden utilizar según los requisitos.
  • Los oyentes son interfaces que se utilizan en el script del controlador web de selenium.
  • Demostró el uso de Listener en Selenium
  • Implementado los Listeners para múltiples clases