Pepino - Relatórios

Fazemos a execução de testes para entender a estabilidade de um produto, seja um teste manual ou um teste automatizado, é muito importante gerar um relatório conciso que possa descrever a estabilidade de um produto. Portanto, enquanto estamos automatizando nosso cenário de teste com o Cucumber, é essencial saber como podemos gerar melhor nossos relatórios de teste do Cucumber. Como sabemos que o Cucumber é uma estrutura BDD, ele não possui um mecanismo de relatório sofisticado.

Para conseguir isso, precisamos integrar o Cucumber com outra ferramenta de software livre, como Ant / Junit. Aqui, vamos dar mais exemplos de JUnit porque ele fornece suporte para a linguagem Java.

Vejamos os detalhes dos diferentes formatos de relatório, que estão disponíveis e são fáceis de usar -

Formato Bonito (Relatório HTML)

O Pretty Format gera o relatório de teste Cucumber no formato HTML, ou seja, um arquivo HTML. É o formato de relatório mais legível. Ele gera o relatório da mesma forma que é um arquivo de recurso, portanto, o rastreamento também é fácil. Além disso, você pode especificar o local onde deseja que este relatório seja colocado após a execução do teste. Pode ser -

  • Local Directory - Podemos especificar o diretório de destino para o relatório como qualquer diretório local da máquina onde o teste será executado.

  • Server Directory- Também temos uma disposição para especificar um diretório de destino como qualquer diretório no servidor, que é publicamente acessível. Isso geralmente ajuda quando queremos que nossos clientes / stakeholders vejam os resultados do teste a qualquer momento.

Exemplo

Vamos automatizar um exemplo de um formato bonito.

Step 1 - Crie um projeto Maven chamado cucumberReport no Eclipse.

Step 2 - Crie um pacote chamado CucumberReport sob src/test/java

Step 3 - Crie um arquivo de feição chamado cucumberReport.feature

Escreva o seguinte texto dentro do arquivo e salve-o.

Feature - Relatório Pepino

#Isso é para verificar o resultado do teste para o caso de teste Passar

Scenario: A funcionalidade de login existe

Dado que abri o navegador

Quando eu abro o site do Facebook

Então o botão Login deve existir

#Isso é para verificar o resultado do teste para o caso de teste com falha

Scenario: Esqueci a senha existe

Dado que abri o navegador

Quando eu abro o site do Facebook

Então o link Esqueci a senha deve existir

Note- Aqui o primeiro cenário passará, enquanto o segundo cenário falhará. Para que possamos testemunhar como é o relatório de aprovação e reprovação.

Step 4 - Crie um arquivo de definição de etapa.

  • Selecione e clique com o botão direito no esboço do pacote.

  • Clique em 'Novo' arquivo.

  • Dê o nome do arquivo como cucumberReport.java

  • Escreva o seguinte texto dentro do arquivo e salve-o.

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 - Crie um arquivo de classe de corredor.

  • Crie uma classe de corredor chamada runTest.java dentro da embalagem.

  • Escreva o seguinte código. Salve o arquivo.

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 { }
  • Execute o teste usando a opção

    • Selecione runTest.java arquivo do explorador de pacote.

    • Clique com o botão direito e selecione a opção, Run as.

    • Selecione o teste JUnit.

Você observará o seguinte ao executar este arquivo de classe.

Ambos os cenários serão executados um por um.

Uma pasta chamada Destino será criada dentro do diretório de destino.

O relatório será nomeado como “Index.html”.

Abra Index.html com o navegador da web.

Você verá o relatório mencionado na imagem a seguir -

Ele destaca exatamente a cor do cenário com falha. Além disso, você verá o destaque para a etapa com falha nesse cenário. Isso torna a depuração muito fácil.

Relatório JSON

Até agora, vimos como o relatório HTML é fácil. No entanto, se quisermos passar as informações desse relatório para qualquer outro aplicativo, isso é meio complicado no caso de relatórios HTML. Aí vem a necessidade de outro formato de relatório. A notação de objeto de script JSON-Java é outro formato para gerar relatórios de teste Cucumber. JSON é um objeto que contém muitas informações armazenadas em formato de texto. Os relatórios JSON trazem um valor diferente para a tabela. O relatório JSON também pode ser usado como uma carga útil de informações a serem transferidas entre diferentes servidores. Além disso, pode ser usado para ser exibido como uma página da web. Resumindo, os relatórios JSON podem ser usados ​​por outro aplicativo.

What is payload information?Quando os dados são enviados pela Internet, cada unidade transmitida inclui as informações do cabeçalho e os dados reais que estão sendo enviados. O cabeçalho identifica a origem e o destino do pacote, enquanto os dados reais são chamados de carga útil. Para gerar um relatório JSON, precisamos apenas fazer uma alteração no arquivo runner.

  • Altere a opção de formato no arquivo runner da seguinte maneira.

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 {}
  • Execute o teste usando a opção -

    • Selecione runTest.java arquivo do explorador de pacote.

    • Clique com o botão direito e selecione a opção Run as.

    • Selecione o teste JUnit.

  • Você observará o seguinte ao executar este arquivo de classe.

    • Ambos os cenários serão executados um por um.

  • O relatório estará lá nomeado como cucumber.json (conforme fornecido na classe de corredor).

  • Abrir cucumber.json arquivo com o editor de texto.

  • Você verá o relatório mencionado na imagem a seguir após colocar as quebras de linha -

Note - JSON é menos legível em comparação com o formato de relatório HTML.