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.