Sélénium avec concombre (cadre BDD)


Dans ce didacticiel, vous apprendrez comment intégrer Cucumber à Selenium Webdriver.

Qu'est-ce que le concombre?

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

Quel est le sélénium?

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 le Concombre avec Sélénium ?

Le concombre et le sélénium sont deux technologies populaires.

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

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

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

Le cadre Concombre 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.

Concombre au Sélénium

Condition préalable à l'utilisation du concombre avec du sélénium

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

  • Fichiers de pots de sélénium :
  • Serveur Selenium-autonome

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

Condition préalable à l'utilisation du concombre avec du sélénium

Fichiers bocaux Pour Concombre :

  • Noyau de concombre
  • Concombre-html
  • couverture du code de cobertura
  • Concombre-java
  • Concombre-junit
  • Concombre-jvm-deps
  • Rapport sur le concombre
  • 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 allons vous montrer comment télécharger l'un des fichiers jar, c'est-à-dire « Cucumber-core ».

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 du concombre avec du sélénium

Dans la page suivante, Cliquez sur la version 1.2.2,

Condition préalable à l'utilisation du concombre avec du sélénium

Dans l'écran suivant, cliquez sur télécharger pour obtenir le fichier jar « Cucumber Core ».

Condition préalable à l'utilisation du concombre avec du sélénium

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 du concombre avec du sélénium.

Étudions étape par étape les étapes à suivre pour utiliser le concombre avec du sélénium. Ici, nous couvrirons 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éer un projet dans eclipse.

Créez un projet Java avec le nom « CucumberWithSelenium », comme indiqué dans la capture d'écran ci-dessous.

Tests d'automatisation utilisant du concombre avec du sélénium

Tests d'automatisation utilisant du concombre avec du sélénium

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

Cliquez avec le bouton droit sur le projet > Sélectionnez Propriétés > Accédez au chemin de construction Java. Ajoutez toutes les bibliothèques téléchargées précédemment.

Tests d'automatisation utilisant du concombre avec du sélénium

É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 du concombre avec du sélénium

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

Tests d'automatisation utilisant du concombre avec du sélénium

Tests d'automatisation utilisant du concombre avec du sélénium

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 du concombre avec du sélénium

Remarque: Vous devrez peut-être installer le concombre 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 Testrunner Selenium pour la conception du framework Selenium Cucumber

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 				
{		

}

Dans l’exemple de code Java Cucumber ci-dessus, nous exécutons le test de concombre en utilisant le suiviwing annotations :

@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 du concombre avec du sélénium

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

Maintenant, nous créons ici le package « StepDefinition », puis le fichier de script « Steps.java » en dessous. Ici, nous écrivons en fait un script sélénium pour effectuer le test selon les méthodes Cucumber.

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 ». L'annotation de concombre 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 à ouvrir firefox et lancez 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 du concombre avec du sélénium

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 du concombre avec du sélénium

É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 du concombre avec du sélénium

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 le script sélénium comme indiqué ci-dessous. Tout d’abord, nous devons ajouter le fichier jar Selenium à 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 suitwing:

  • 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 suitwing:

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

Le concombre 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.

Le concombre peut être intégré à Selenium en utilisant following 3 Étapes

  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 au 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.