Selenium avec Cucumber (Cadre BDD)


Dans ce tutoriel, vous apprendrez à intégrer Cucumber avec Selenium Pilote Web.

Qu’est ce qu' Cucumber?

Cucumber est une approche de test qui prend en charge le développement piloté par le comportement (BDD). Il explique le comportement de l'application dans un simple texte anglais utilisant le langage Gherkin.

En savoir plus sur – https://www.guru99.com/cucumber-tutorials.html

Qu’est ce qu' Selenium?

Selenium est un outil d'automatisation pour Essais fonctionnels de l'application basée sur le Web. Selenium prend en charge différents langages comme Java, Ruby, Python C#, etc.

En savoir plus sur – https://www.guru99.com/selenium-tutorial.html

Pourquoi utiliser Cucumber avec Selenium?

Cucumber et Selenium sont deux technologies populaires.

La plupart des organisations utilisent Selenium pour les tests fonctionnels. Ces organisations qui utilisent Selenium, je souhaite intégrer Selenium avec Cucumber as Cucumber fait il est facile à lire et à comprendre le flux de candidature.

Cucumber L'outil est basé sur le cadre de développement piloté par le comportement qui sert de pont entre les personnes suivantes :

  1. Ingénieur logiciel et analyste commercial.
  2. Testeur manuel et testeur d'automatisation.
  3. Testeur manuel et développeurs.

Cucumber Le cadre BDD également il est avantageux pour le client de comprendre le code de l'application car il utilise le langage Gherkin qui est en texte brut. N'importe qui dans l'organisation peut comprendre le comportement du logiciel. La syntaxe de Gherkin est présentée dans un texte simple, lisible et compréhensible.

Cucumber avec Selenium

Condition préalable à l'utilisation Cucumber avec Selenium

Avant de commencer Cucumber Selenium intégration, nous avons besoin des éléments suivants :

  • Selenium fichiers jar :
  • Selenium-serveur-autonome

Peut être téléchargé sur http://www.seleniumhq.org/download/

Condition préalable à l'utilisation Cucumber avec Selenium

Fichiers jar pour Cucumber :

  • Cucumber-coeur
  • Cucumber-html
  • couverture du code de cobertura
  • Cucumber-Java
  • Cucumber-juin
  • Cucumber-jvm-deps
  • Cucumberrapporter
  • Noyau de hamcrest
  • Cornichon
  • Junite

Peut être téléchargé sur https://mvnrepository.com/search?q=Cucumber

Vous devez rechercher des fichiers et les télécharger un par un individuellement.

Par exemple, nous vous montrerons comment télécharger l'un des fichiers jar, c'est-à-dire «Cucumber-cœur."

Cliquez sur le lien de téléchargement ci-dessus. Il redirige vers le site ci-dessous. Recherchez maintenant le pot en question, c'est-à-dire 'Cucumber Core', comme illustré ci-dessous :

Condition préalable à l'utilisation Cucumber avec Selenium

Dans la page suivante, Cliquez sur la version 1.2.2,

Condition préalable à l'utilisation Cucumber avec Selenium

Dans l'écran suivant, cliquez sur télécharger pour obtenir le 'Cucumber Fichier jar de base.

Condition préalable à l'utilisation Cucumber avec Selenium

Notes: Pour votre commodité, nous avons regroupé les fichiers jar requis pour être téléchargés depuis Maven ici. Avec le temps, ces pots peuvent être mis à jour et devenir incompatibles. Il vous est demandé de les télécharger selon la méthode illustrée ci-dessus.

Tests d'automatisation utilisant Cucumber avec Selenium.

Étudions les étapes à utiliser Cucumber avec le sélénium étape par étape. Nous allons ici aborder 3 scénarios :

  • Scénario 1 : imprimer du texte dans la console.
  • Scénario 2 : saisissez les informations de connexion et réinitialisez la valeur.
  • Scénario 3 : saisissez les informations de connexion sur Guru99 et réinitialisez la valeur. Faites cela pour 3 ensembles de données.

Scénario 1 : imprimer du texte dans la console.

Dans ce scénario, nous imprimons simplement le texte dans la console en utilisant Cucumber.

Étape 1) Créez un projet dans Eclipse.

Créez Java projet portant le nom "CucumberGrâce à Selenium» comme le montre la capture d'écran ci-dessous.

Tests d'automatisation utilisant Cucumber avec Selenium

Tests d'automatisation utilisant Cucumber avec Selenium

Étape 2) Ajout de fichiers Jar dans le projet.

Faites un clic droit sur le projet > Sélectionnez Propriétés > Aller à Java Construire un chemin. Ajoutez toutes les bibliothèques téléchargées précédemment.

Tests d'automatisation utilisant Cucumber avec Selenium

Étape 3) Création d'un fichier de fonctionnalités

Pour créer un fichier de fonctionnalités, créez d'abord le dossier de fonctionnalités comme indiqué ci-dessous la capture d'écran.

Tests d'automatisation utilisant Cucumber avec Selenium

Entrez maintenant le nom du dossier « Fonctionnalités » et cliquez sur le bouton « Terminer ».

Tests d'automatisation utilisant Cucumber avec Selenium

Tests d'automatisation utilisant Cucumber avec Selenium

Maintenant, créez un fichier de fonctionnalités dans le dossier « Fonctionnalités » avec le nom « MyTest.feature » – Le processus est similaire à la création d'un dossier.

Tests d'automatisation utilisant Cucumber avec Selenium

Remarque : Vous devrez peut-être installer le Cucumber Eclipse Plugin pour que cela fonctionne. Aller à — Aide->Installer un nouveau logiciel->copier-coller le lien http://cucumber.github.io/cucumber-eclipse/update-site/ et installez

Étape 4) Écrivez des scénarios.

Les lignes ci-dessous sont écrites dans le fichier « MyTest.feature » en utilisant le langage Gherkin, comme indiqué ci-dessous :

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

Explication du code

Ligne 1) Dans cette ligne, nous écrivons les fonctionnalités métier.

Ligne 2) Dans cette ligne, nous écrivons un scénario à tester.

Ligne 3) Dans cette ligne, nous définissons la précondition.

Ligne 4) Dans cette ligne, nous définissons l'action que nous devons effectuer.

Ligne 4) Dans cette ligne, nous définissons le résultat ou le résultat attendu.

Étape 5) Écriture d'un script de test Selenium pour Selenium Cucumber conception du cadre

Ici, nous créons le package « TestRunner », puis le fichier de classe « Runner.java » en dessous.

package TestRunner;		

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

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

Au dessus Cucumber Java exemple de code, nous exécutons le test de concombre en utilisant les annotations suivantes :

@Courir avec() L'annotation indique la classe du lanceur de tests pour commencer à exécuter nos tests.

@ConcombreOptions() L'annotation est utilisée pour définir certaines propriétés de notre test de concombre telles que le fichier de fonctionnalités, la définition d'étape, etc.

Capture d'écran du fichier TestRunner.

Tests d'automatisation utilisant Cucumber avec Selenium

Étape 6) Création d'un script de définition d'étape.

Nous créons ici le package « StepDefinition » puis le fichier script « Steps.java » en dessous. Ici, nous écrivons un script Selenium pour effectuer le test sous Cucumber méthodes.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

Dans le code ci-dessus, la classe est créée avec le nom « Steps ». Cucumber L'annotation est utilisée pour mapper avec le fichier de fonctionnalités. Chaque méthode d'annotation est définie :

@Donné annotation définir la méthode pour ouvrir Firefox et lancer l'application

@Quand méthode de définition d'annotation pour saisir le nom d'utilisateur et le mot de passe

@Alors méthode de définition d'annotation pour réinitialiser les informations d'identification

Sous chaque méthode, nous imprimons uniquement un message.

Vous trouverez ci-dessous la capture d'écran du script 'Steps.java' et de l'arborescence du projet, à quoi ils ressemblent.

Tests d'automatisation utilisant Cucumber avec Selenium

Remarque : La définition des étapes n'est rien d'autre que les étapes que vous souhaitez effectuer dans le cadre de cette méthode du concombre.

Étape 7) Exécution du script.

L'utilisateur peut exécuter ce script à partir du script Test Runner, c'est-à-dire « Runner.java », comme indiqué dans la capture d'écran ci-dessous.

Tests d'automatisation utilisant Cucumber avec Selenium

Étape 8) Analysez le résultat.

Lors de l'exécution du script 'Runner.java', il affiche le texte sur la console. Il s'agit du même texte défini dans le script 'Steps.java'.

Tests d'automatisation utilisant Cucumber avec Selenium

Scénario 2 : saisissez les informations de connexion et réinitialisez la valeur.

Ici, nous allons simplement entrer les informations d'identification sur la page de connexion de la démo Guru99 et réinitialiser la valeur.

Pour le scénario 2, nous devons mettre à jour uniquement le script « Steps.java ». Ici, nous écrivons en fait le script Selenium comme indiqué ci-dessous. Tout d'abord, nous devons ajouter Selenium jar à ce projet.

Entrez les informations de connexion et réinitialisez la valeur

Étape 1) Ici, nous mettons à jour le script « Steps.java » comme indiqué dans le code et la capture d'écran ci-dessous.

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Capture d'écran du script sélénium ci-dessus.

Entrez les informations de connexion et réinitialisez la valeur

Étape 2) Exécutez le script.

Après la mise à jour, nous exécutons Runner.java.

Étape 3) Analysez le résultat.

Dans la sortie, vous pouvez voir ce qui suit :

  • Navigateur lancé.
  • Le site de démonstration de la banque Guru99 est ouvert.
  • Le nom d'utilisateur et le mot de passe sont placés sur la page de connexion.
  • Réinitialisez les valeurs.

Entrez les informations de connexion et réinitialisez la valeur

Scénario 3 : saisissez les informations de connexion sur Guru99 et réinitialisez la valeur. Faites cela pour 3 ensembles de données.

Ici, nous devons mettre à jour à la fois le « Step.java » et le fichier de fonctionnalités.

Étape 1) Mettez à jour le fichier de fonctionnalités comme indiqué ci-dessous :

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

Entrez les informations de connexion

Étape 2) Mettez maintenant à jour le script Step.java.

Ici, nous mettons à jour les méthodes pour transmettre les paramètres, script mis à jour ci-dessous :

package StepDefinition;		

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

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Entrez les informations de connexion

Étape 3) Exécutez maintenant le script mis à jour.

L'écran ci-dessous montre l'exécution réussie du script et le temps nécessaire à chaque ensemble de données.

Entrez les informations de connexion

Étape 4) Analysez le résultat.

Dans la sortie, vous pouvez voir ce qui suit :

La sortie ci-dessous est répétée pour le nombre d'ensembles de données, c'est-à-dire 3 ensembles.

  • Navigateur lancé.
  • Le site de démonstration de la banque Guru99 est ouvert.
  • Le nom d'utilisateur et le mot de passe sont placés sur la page de connexion.
  • Réinitialisez les valeurs.

Entrez les informations de connexion

Pour aller plus loin

Cucumber est un outil BDD très populaire. Il est facile à lire et peut être compris par toutes les parties prenantes, y compris les personnes techniques et non techniques.

Cucumber peut être intégré avec Selenium en suivant les 3 étapes suivantes

  1. Créez un fichier de fonctionnalités dans lequel définissez la fonctionnalité et les scénarios étape par étape en utilisant le langage Gherkin.
  2. Créez un fichier Testrunner. Dans ce fichier, nous avons intégré Cucumber avec le framework BDD dans Selenium. Nous exécutons ce script.
  3. Définition de l'étape de création, le script Selenium réel défini dans ce package.

En savoir plus Lire la suite