Pepino - Informes

Realizamos pruebas de ejecución para comprender la estabilidad de un producto, por lo que ya sea una prueba manual o una prueba automatizada, es muy importante generar un informe conciso que pueda describir la estabilidad de un producto. Por lo tanto, mientras automatizamos nuestro escenario de prueba con Cucumber, es esencial saber qué tan mejor podemos generar nuestros informes de prueba de Cucumber. Como sabemos que Cucumber es un marco BDD, no tiene un mecanismo de informes elegante.

Para lograr esto, necesitamos integrar Cucumber con otra herramienta de código abierto como Ant / Junit. Aquí, tomaremos más ejemplos de JUnit porque proporciona soporte para el lenguaje Java.

Veamos los detalles de los diferentes formatos de informe, que están disponibles y son fáciles de usar:

Formato bonito (informe HTML)

Pretty Format genera el informe de prueba de Cucumber en formato HTML, es decir, un archivo HTML. Es el formato de informe más legible. Genera el informe de la misma manera que es un archivo de características, por lo que el seguimiento también se facilita. Además, puede especificar la ubicación donde desea que se coloque este informe después de la ejecución de la prueba. Puede ser

  • Local Directory - Podemos especificar el directorio de destino para el informe como cualquier directorio local de la máquina donde se ejecutará la prueba.

  • Server Directory- También tenemos una disposición para especificar un directorio de destino como cualquier directorio en el servidor, que es de acceso público. Esto generalmente ayuda cuando queremos que nuestros clientes / partes interesadas vean los resultados de la prueba en un momento dado.

Ejemplo

Automaticemos un ejemplo de un formato bonito.

Step 1 - Crea un proyecto Maven llamado cucumberReport en Eclipse.

Step 2 - Crea un paquete llamado CucumberReport debajo src/test/java

Step 3 - Cree un archivo de características llamado cucumberReport.feature

Escriba el siguiente texto dentro del archivo y guárdelo.

Feature - Informe Pepino

# Esto es para verificar el resultado de la prueba para el caso de prueba Pass

Scenario: Existe la funcionalidad de inicio de sesión

Dado que he abierto el navegador

Cuando abro el sitio web de Facebook

Entonces el botón Iniciar sesión debería existir

# Esto es para verificar el resultado de la prueba para el caso de prueba fallido

Scenario: Existe la contraseña olvidada

Dado que he abierto el navegador

Cuando abro el sitio web de Facebook

Entonces debería existir el enlace de contraseña olvidada

Note- Aquí el primer escenario pasará, mientras que el segundo escenario fallará. Para que podamos presenciar cómo se ve el informe aprobado y fallido.

Step 4 - Cree un archivo de definición de pasos.

  • Seleccione y haga clic con el botón derecho en el esquema del paquete.

  • Haga clic en el archivo 'Nuevo'.

  • Dar el nombre del archivo como cucumberReport.java

  • Escriba el siguiente texto dentro del archivo y guárdelo.

package CucumberReport;
 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class cucumberReport { 
   WebDriver driver = null; 
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

Step 5 - Crea un archivo de clase de corredor.

  • Crea una clase de corredor llamada runTest.java dentro del paquete.

  • Escribe el siguiente código. Guarda el archivo.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
	
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project. 

public class runTest { }
  • Ejecute la prueba usando la opción

    • Seleccione runTest.java archivo del explorador de paquetes.

    • Haga clic derecho y seleccione la opción, Run as.

    • Seleccione prueba JUnit.

Observará las siguientes cosas cuando ejecute este archivo de clase.

Ambos escenarios se ejecutarán uno por uno.

Se creará una carpeta denominada Destino dentro del directorio de destino.

El informe se denominará allí como "Index.html".

Abra Index.html con el navegador web.

Verá el informe mencionado en la siguiente imagen:

Resalta exactamente el color del escenario fallido. Además, verá resaltado por paso fallido en ese escenario. Esto hace que la depuración sea muy sencilla.

Informe JSON

A estas alturas hemos visto lo fácil que es el informe HTML. Sin embargo, si queremos pasar la información de este informe a cualquier otra aplicación, es un poco complicado en el caso de los informes HTML. Aquí surge la necesidad de otro formato de informe. La notación de objetos de script JSON-Java es otro formato para generar informes de prueba de Cucumber. JSON es un objeto que contiene mucha información almacenada en formato de texto. Los informes JSON aportan un valor diferente a la mesa. El informe JSON también se puede utilizar como una carga útil de información que se transferirá entre diferentes servidores. Además, puede usarse para mostrarse como una página web. En pocas palabras, otra aplicación puede utilizar los informes JSON.

What is payload information?Cuando los datos se envían a través de Internet, cada unidad transmitida incluye tanto la información del encabezado como los datos reales que se envían. El encabezado identifica el origen y el destino del paquete, mientras que los datos reales se conocen como carga útil. Para generar un informe JSON, solo necesitamos realizar un cambio en el archivo del corredor.

  • Cambie la opción de formato en el archivo del corredor de la siguiente manera.

package CucumberReport; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

public class runTest {}
  • Ejecute la prueba usando la opción -

    • Seleccione runTest.java archivo del explorador de paquetes.

    • Haga clic derecho y seleccione la opción Run as.

    • Seleccione prueba JUnit.

  • Observará las siguientes cosas cuando ejecute este archivo de clase.

    • Ambos escenarios se ejecutarán uno por uno.

  • El informe se nombrará allí como cucumber.json (según lo previsto en la clase de corredor).

  • Abierto cucumber.json archivo con el editor de texto.

  • Verá el informe mencionado en la siguiente captura de pantalla después de colocar saltos de línea:

Note - JSON es menos legible en comparación con el formato de informe HTML.