Concombre - Rapports
Nous effectuons des tests afin de comprendre la stabilité d'un produit, donc que ce soit un test manuel ou un test automatisé, il est très important de générer un rapport concis qui peut décrire la stabilité d'un produit. Par conséquent, alors que nous automatisons notre scénario de test avec Cucumber, il est essentiel de savoir comment nous pouvons mieux générer nos rapports de test Cucumber. Comme nous savons que Cucumber est un framework BDD, il n'a pas de mécanisme de rapport sophistiqué.
Pour y parvenir, nous devons intégrer Cucumber à un autre outil open source comme Ant / Junit. Ici, nous allons prendre des exemples de JUnit plus loin, car il prend en charge le langage Java.
Examinons les détails des différents formats de rapport, disponibles et faciles à utiliser -
Pretty Format (rapport HTML)
Pretty Format génère le rapport de test Cucumber au format HTML, c'est-à-dire un fichier HTML. C'est le format de rapport le plus lisible. Il génère le rapport de la même manière qu'il s'agit d'un fichier d'entités, le traçage est donc également facilité. Vous pouvez également spécifier l'emplacement où vous souhaitez que ce rapport soit placé après l'exécution du test. Cela peut être -
Local Directory - Nous pouvons spécifier le répertoire cible du rapport comme n'importe quel répertoire local de la machine où le test sera exécuté.
Server Directory- Nous avons également une disposition pour spécifier un répertoire cible comme n'importe quel répertoire sur le serveur, qui est accessible au public. Cela aide généralement lorsque nous voulons que nos clients / parties prenantes voient les résultats des tests à un moment donné.
Exemple
Automatisons un exemple de joli format.
Step 1 - Créez un projet Maven nommé cucumberReport dans Eclipse.
Step 2 - Créez un package nommé CucumberReport en dessous de src/test/java
Step 3 - Créez un fichier d'entités nommé cucumberReport.feature
Écrivez le texte suivant dans le fichier et enregistrez-le.
Feature - Rapport sur le concombre
# Ceci est pour vérifier le résultat du test pour réussir le cas de test
Scenario: La fonctionnalité de connexion existe
Étant donné que j'ai ouvert le navigateur
Quand j'ouvre le site Facebook
Ensuite, le bouton de connexion doit exister
# Ceci permet de vérifier le résultat du test pour le cas de test ayant échoué
Scenario: Le mot de passe oublié existe
Étant donné que j'ai ouvert le navigateur
Quand j'ouvre le site Facebook
Ensuite, le lien Mot de passe oublié doit exister
Note- Ici, le premier scénario passera, tandis que le second scénario échouera. Pour que nous puissions voir à quoi ressemble le rapport de réussite et d'échec.
Step 4 - Créez un fichier de définition d'étape.
Sélectionnez et cliquez avec le bouton droit sur le contour du package.
Cliquez sur "Nouveau" fichier.
Donnez le nom du fichier comme cucumberReport.java
Écrivez le texte suivant dans le fichier et enregistrez-le.
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 - Créez un fichier de classe de coureur.
Créez une classe de coureur nommée runTest.java à l'intérieur de l'emballage.
Écrivez le code suivant. Enregistrez le fichier.
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 { }
Exécutez le test en utilisant l'option
Sélectionner runTest.java fichier de l'explorateur de packages.
Cliquez avec le bouton droit de la souris et sélectionnez l'option, Run as.
Sélectionnez le test JUnit.
Vous observerez les choses suivantes lorsque vous exécuterez ce fichier de classe.
Les deux scénarios seront exécutés un par un.
Un dossier nommé Destination sera créé dans le répertoire cible.
![](https://assets.edu.lat/cucumber/images/cucumber_json.jpg)
Le rapport y sera nommé «Index.html».
Ouvrez Index.html avec un navigateur Web.
Vous verrez le rapport mentionné dans l'image suivante -
![](https://assets.edu.lat/cucumber/images/cucumber_report.jpg)
Il met exactement en évidence la couleur du scénario raté. De plus, vous verrez le point culminant de l'échec de l'étape dans ce scénario. Cela rend le débogage très facile.
Rapport JSON
À présent, nous avons vu à quel point le rapport HTML est simple. Cependant, si nous voulons transmettre ces informations de rapport à une autre application, c'est un peu délicat dans le cas de rapports HTML. Voici le besoin d'un autre format de rapport. La notation d'objet de script JSON-Java est un autre format pour générer des rapports de test Cucumber. JSON est un objet contenant de nombreuses informations stockées au format texte. Les rapports JSON apportent une valeur différente à la table. Le rapport JSON peut également être utilisé comme une charge utile d'informations à transférer entre différents serveurs. En outre, il peut être utilisé pour être affiché sous forme de page Web. En un mot, les rapports JSON peuvent être utilisés par d'autres applications.
What is payload information?Lorsque les données sont envoyées sur Internet, chaque unité transmise comprend à la fois les informations d'en-tête et les données réelles envoyées. L'en-tête identifie la source et la destination du paquet, tandis que les données réelles sont appelées la charge utile. Afin de générer un rapport JSON, il suffit de modifier le fichier runner.
Modifiez l'option de format dans le fichier Runner comme suit.
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 {}
Exécutez le test en utilisant l'option -
Sélectionner runTest.java fichier de l'explorateur de packages.
Faites un clic droit et sélectionnez l'option Run as.
Sélectionnez le test JUnit.
Vous observerez les choses suivantes lorsque vous exécuterez ce fichier de classe.
Les deux scénarios seront exécutés un par un.
![](https://assets.edu.lat/cucumber/images/folder_name.jpg)
Le rapport y sera nommé cucumber.json (comme prévu dans la classe coureur).
Ouvert cucumber.json fichier avec l'éditeur de texte.
Vous verrez le rapport mentionné dans la capture d'écran suivante après avoir placé des sauts de ligne -
![](https://assets.edu.lat/cucumber/images/text_editor.jpg)
Note - JSON est moins lisible que le format de rapport HTML.