Cetriolo - Rapporti

Eseguiamo test per comprendere la stabilità di un prodotto, quindi che si tratti di test manuale o automatico, è molto importante generare un report conciso che possa rappresentare la stabilità di un prodotto. Quindi, mentre automatizziamo il nostro scenario di test con Cucumber, è essenziale sapere quanto meglio possiamo generare i nostri rapporti sui test di Cucumber. Poiché sappiamo che Cucumber è un framework BDD, non dispone di un meccanismo di segnalazione di fantasia.

Per raggiungere questo obiettivo, dobbiamo integrare Cucumber con altri strumenti open source come Ant / Junit. Qui, prenderemo ulteriori esempi di JUnit perché fornisce supporto per il linguaggio Java.

Esaminiamo i dettagli dei diversi formati di report, disponibili e facili da usare:

Formato grazioso (report HTML)

Pretty Format genera il rapporto di prova Cucumber in formato HTML, cioè un file HTML. È il formato di report più leggibile. Genera il report nello stesso modo in cui si tratta di un file di funzionalità, quindi anche la traccia è resa semplice. Inoltre, è possibile specificare la posizione in cui si desidera che questo rapporto venga inserito dopo l'esecuzione del test. Può essere -

  • Local Directory - È possibile specificare la directory di destinazione per il report come qualsiasi directory locale della macchina in cui verrà eseguito il test.

  • Server Directory- Inoltre, abbiamo una disposizione per specificare una directory di destinazione come qualsiasi directory sul server, che è accessibile pubblicamente. Questo generalmente aiuta quando vogliamo che i nostri clienti / stakeholder visualizzino i risultati del test in un dato momento.

Esempio

Automatizziamo un esempio di un bel formato.

Step 1 - Crea un progetto Maven denominato cucumberReport in Eclipse.

Step 2 - Crea un pacchetto denominato CucumberReport sotto src/test/java

Step 3 - Crea un file di funzionalità denominato cucumberReport.feature

Scrivi il testo seguente all'interno del file e salvalo.

Feature - Rapporto sui cetrioli

# Questo serve per controllare il risultato del test per il caso di test Pass

Scenario: Esiste la funzionalità di accesso

Dato che ho aperto il browser

Quando apro il sito web di Facebook

Quindi dovrebbe esistere il pulsante di accesso

#Questo serve per controllare il risultato del test per il caso di test non riuscito

Scenario: La password dimenticata esiste

Dato che ho aperto il browser

Quando apro il sito web di Facebook

Quindi dovrebbe esistere il collegamento Password dimenticata

Note- Qui il primo scenario passerà, mentre il secondo scenario fallirà. In modo che possiamo testimoniare come appare il rapporto superato e fallito.

Step 4 - Crea un file di definizione del passaggio.

  • Seleziona e fai clic con il pulsante destro del mouse sulla struttura del pacchetto.

  • Fare clic su "Nuovo" file.

  • Assegna al file il nome cucumberReport.java

  • Scrivi il testo seguente all'interno del file e salvalo.

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 file di classe corridore.

  • Crea una classe di corridori chiamata runTest.java all'interno della confezione.

  • Scrivi il codice seguente. Salva il file.

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 { }
  • Esegui il test utilizzando l'opzione

    • Selezionare runTest.java file da Package Explorer.

    • Fare clic con il tasto destro e selezionare l'opzione, Run as.

    • Seleziona JUnit test.

Osserverai le seguenti cose quando esegui questo file di classe.

Entrambi gli scenari verranno eseguiti uno per uno.

Una cartella denominata Destinazione verrà creata all'interno della directory di destinazione.

Il rapporto sarà lì denominato "Index.html".

Apri Index.html con il browser web.

Vedrai il rapporto menzionato nell'immagine seguente:

Evidenzia esattamente il colore dello scenario fallito. Inoltre, vedrai l'evidenziazione per il passaggio non riuscito in quello scenario. Questo rende il debug molto semplice.

Rapporto JSON

Ormai abbiamo visto quanto sia facile il report HTML. Tuttavia, se vogliamo trasmettere queste informazioni di report a qualsiasi altra applicazione, è un po 'complicato in caso di report HTML. Ecco la necessità di un altro formato di rapporto. La notazione dell'oggetto script JSON-Java è un altro formato per la generazione di rapporti di prova Cucumber. JSON è un oggetto contenente molte informazioni archiviate in formato testo. I rapporti JSON apportano un valore diverso alla tabella. Il report JSON può anche essere utilizzato come payload di informazioni da trasferire tra diversi server. Inoltre, può essere utilizzato per essere visualizzato come una pagina web. In poche parole, i report JSON possono essere utilizzati da altre applicazioni.

What is payload information?Quando i dati vengono inviati su Internet, ciascuna unità trasmessa include sia le informazioni di intestazione che i dati effettivi inviati. L'intestazione identifica l'origine e la destinazione del pacchetto, mentre i dati effettivi sono indicati come payload. Per generare un report JSON, è sufficiente apportare una modifica al file runner.

  • Modificare l'opzione di formato nel file runner come segue.

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 {}
  • Esegui il test utilizzando l'opzione -

    • Selezionare runTest.java file da Package Explorer.

    • Fare clic con il tasto destro e selezionare l'opzione Run as.

    • Seleziona JUnit test.

  • Osserverai le seguenti cose quando esegui questo file di classe.

    • Entrambi gli scenari verranno eseguiti uno per uno.

  • Il rapporto sarà lì chiamato come cucumber.json (come previsto nella classe runner).

  • Aperto cucumber.json file con l'editor di testo.

  • Vedrai il rapporto menzionato nello screenshot seguente dopo aver inserito le interruzioni di riga -

Note - JSON è meno leggibile rispetto al formato di report HTML.