Sélénium avec concombre (BDD Framework): Tutoriel avec exemple

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

Qu'est-ce que le concombre?

Cucumber est une approche de test qui prend en charge le développement axé sur 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 sélénium?

Selenium est un outil d'automatisation pour les tests fonctionnels de l'application Web. Selenium prend en charge différents langages tels que java, ruby, python C #, etc.

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

Dans ce tutoriel sur le concombre, nous allons apprendre-

  • Pourquoi utiliser du concombre avec du sélénium?
  • Condition préalable à l'utilisation du concombre avec du sélénium.
  • Test d'automatisation utilisant du concombre avec du sélénium.
  • 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: Entrez les informations de connexion sur Guru99 et réinitialisez la valeur. Faites ceci pour 3 ensembles de données.

Pourquoi utiliser du concombre avec du 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 avec Cucumber car Cucumber facilite la lecture et la compréhension du flux de l'application.

L'outil Cucumber est basé sur le framework Behavior Driven Development 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.

Le framework Cucumber BDD permet également au 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 dans un texte simple qui est lisible et compréhensible.

Prérequis pour l'utilisation de concombre avec sélénium

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

  • Fichiers de pot de sélénium:
  • Serveur Selenium autonome

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

Fichiers Jar pour concombre:

  • Noyau de concombre
  • Concombre-html
  • couverture du code cobertura
  • Concombre-java
  • Concombre-junit
  • Concombre-jvm-deps
  • Rapport sur les concombres
  • Hemcrest-noyau
  • Cornichon
  • Junit

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. Maintenant, recherchez le pot particulier, 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 fichier jar «Cucumber Core».

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

Test d'automatisation utilisant du concombre avec du sélénium.

Étudions étape par étape les étapes d'utilisation du concombre avec du sélénium. Ici, nous allons couvrir 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: Entrez les informations de connexion sur Guru99 et réinitialisez la valeur. Faites ceci 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 un projet Java avec le nom "CucumberWithSelenium" comme indiqué dans la capture d'écran ci-dessous.

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

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

Étape 3) Création du fichier de fonctionnalités

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

Entrez maintenant le nom du dossier «Caractéristiques» et cliquez sur le bouton «Terminer».

Maintenant, créez un fichier de fonctionnalités dans le dossier 'Features' avec le nom de "MyTest.feature" - Le processus est similaire à la création d'un dossier

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

Étape 4) Rédigez des scénarios.

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

Fonctionnalité: Réinitialiser la fonctionnalité sur la page de connexion de l'application

Scénario: vérification du bouton de réinitialisation

Étant donné Ouvrez Firefox et lancez l'application

Lorsque vous entrez le nom d'utilisateur et le mot de passe

Ensuite, réinitialisez les informations d'identification

Explication du code

Ligne 1) Dans cette ligne, nous écrivons des fonctionnalités commerciales.

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

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

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 attendu ou le résultat.

Étape 5) Écriture du script de testrunner de sélénium pour la conception du cadre 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"})coureur de classe publique{}

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

L' annotation @RunWith () parle de la classe de test runner pour commencer à exécuter nos tests.

L' annotation @CucmberOptions () est utilisée pour définir certaines propriétés pour notre test de concombre comme le fichier de caractéristiques, la définition d'étape, etc.

Capture d'écran du fichier TestRunner.

Étape 6) Création du 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 ("Ouvrez Firefox et lancez l'application $")public void open_the_Firefox_and_launch_the_application () lance Throwable{System.out.println ("Cette étape ouvre Firefox et lance l'application.");}@When ("Entrez le nom d'utilisateur et le mot de passe $")public void enter_the_Username_and_Password () jette Throwable{System.out.println ("Cette étape entrez le nom d'utilisateur et le mot de passe sur la page de connexion.");}@Then ("Reset the credential $")public void Reset_the_credential () lance Throwable{System.out.println ("Cette étape, cliquez sur le bouton Réinitialiser.");}}

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 d'entités. Chaque méthode d'annotation est définie:

L' annotation @Given définit la méthode pour ouvrir Firefox et lancer l'application

@Lorsque l' annotation définit la méthode pour saisir le nom d'utilisateur et le mot de passe

@Ensuite, l' annotation définit la méthode pour réinitialiser les informations d'identification

Pour chaque méthode, nous n'imprimons qu'un message.

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

Remarque: la définition de l'étape n'est rien d'autre que les étapes que vous souhaitez effectuer dans le cadre de cette méthode de 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 la sortie.

Lors de l'exécution du script 'Runner.java', il affiche le texte sur la console. C'est le même texte que celui 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 démonstration de 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 sélénium comme indiqué ci-dessous. Tout d'abord, nous devons ajouter le fichier jar Selenium à 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 {Pilote WebDriver;@Given ("Ouvrez Firefox et lancez l'application $")public void open_the_Firefox_and_launch_the_application () lance Throwable{System.setProperty ("webdriver.gecko.driver", "E: //Selenium//Selenium_Jars//geckodriver.exe");pilote = nouveau FirefoxDriver ();driver.manage (). window (). maximiser ();driver.get ("http://demo.guru99.com/v4");}@When ("Entrez le nom d'utilisateur et le mot de passe $")public void enter_the_Username_and_Password () jette Throwable{driver.findElement (Par.nom ("uid")). sendKeys ("username12");driver.findElement (Par.nom ("mot de passe")). sendKeys ("mot de passe12");}@Then ("Reset the credential $")public void Reset_the_credential () lance Throwable{driver.findElement (Par.nom ("btnReset")). click ();}}

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

Étape 2) Exécutez le script.

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

Étape 3) Analysez la sortie.

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: Entrez les informations de connexion sur Guru99 et réinitialisez la valeur. Faites ceci 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:

Ici, nous mettons à jour le fichier de fonctionnalités avec la syntaxe «Scénario Outline» et «examples».

Fonctionnalité: Réinitialiser la fonctionnalité sur la page de connexion de l'application

Aperçu du scénario: vérification du bouton de réinitialisation avec le nombre d'informations d'identification

Étant donné Ouvrez Firefox et lancez l'application

Lorsque vous entrez le nom d'utilisateur et le mot de passe

Ensuite, réinitialisez les informations d'identification

Exemples:

| nom d'utilisateur | mot de passe |

| Utilisateur1 | mot de passe1 |

| Utilisateur2 | mot de passe2 |

| Utilisateur3 | mot de passe3 |

// Dans cette ligne, nous définissons l'ensemble des données.

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

Ici, nous mettons à jour les méthodes pour passer les paramètres, script mis à jour illustré 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 {Pilote WebDriver;@Given ("Ouvrez Firefox et lancez l'application $")public void open_the_Firefox_and_launch_the_application () lance Throwable{System.setProperty ("webdriver.gecko.driver", "E: //Selenium//Selenium_Jars//geckodriver.exe");pilote = nouveau FirefoxDriver ();driver.manage (). window (). maximiser ();driver.get ("www.demo.guru99.com/v4");}@When ("Entrez le nom d'utilisateur \" (. *) \ "Et le mot de passe \" (. *) \ "$")public void enter_the_Username_and_Password (String username, String password) jette Throwable{driver.findElement (Par.nom ("uid")). sendKeys (nom d'utilisateur);driver.findElement (Par.nom ("mot de passe")). sendKeys (mot de passe);}@Then ("Reset the credential $")public void Reset_the_credential () lance Throwable{driver.findElement (Par.nom ("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 pris par chaque ensemble de données.

Étape 4) Analysez la sortie.

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.

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 les 3 étapes suivantes

  1. Créez un fichier de fonctionnalités dans lequel définir 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 de sélénium réel défini dans ce package.

Articles intéressants...