Selenium au Cucumber (Tutoriel sur le framework BDD)


Dans ce tutoriel, vous apprendrez ร  intรฉgrer Cucumber au Selenium Pilote Web.

Qu'est-ce que le 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 que le 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 au Selenium?

Cucumber 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 au 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 au Selenium

Condition prรฉalable ร  l'utilisation Cucumber au 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 au 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 au Selenium

Dans la page suivante, Cliquez sur la version 1.2.2,

Condition prรฉalable ร  l'utilisation Cucumber au Selenium

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

Condition prรฉalable ร  l'utilisation Cucumber au Selenium

Note: 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 au 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รฉer Java projet portant le nom "CucumberAvec leSeleniumยป comme le montre la capture d'รฉcran ci-dessous.

Tests d'automatisation utilisant Cucumber au Selenium

Tests d'automatisation utilisant Cucumber au 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 au 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 au Selenium

Entrez maintenant le nom du dossier ยซ Fonctionnalitรฉs ยป et cliquez sur le bouton ยซ Terminer ยป.

Tests d'automatisation utilisant Cucumber au Selenium

Tests d'automatisation utilisant Cucumber au 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 au 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 au 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 au 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 au 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 au 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

Conclusion

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.

Rรฉsumez cet article avec :