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 :
- Ingรฉnieur logiciel et analyste commercial.
- Testeur manuel et testeur d'automatisation.
- 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.
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/
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 :
Dans la page suivante, Cliquez sur la version 1.2.2,
Dans l'รฉcran suivant, cliquez sur tรฉlรฉcharger pour obtenir le 'Cucumber Fichier jar de base.
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.
ร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.
ร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.
Entrez maintenant le nom du dossier ยซ Fonctionnalitรฉs ยป et cliquez sur le bouton ยซ Terminer ยป.
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.
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.
ร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.
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.
ร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'.
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.
ร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.
ร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.
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.
ร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();
}
}
ร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.
ร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.
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
- 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.
- Crรฉez un fichier Testrunner. Dans ce fichier, nous avons intรฉgrรฉ Cucumber avec le framework BDD dans Selenium. Nous exรฉcutons ce script.
- Dรฉfinition de l'รฉtape de crรฉation, le script Selenium rรฉel dรฉfini dans ce package.























