cucumber gherkin tutorial
Ce didacticiel informatif explique les avantages de Cucumber Gherkin Framework et comment écrire des scripts d'automatisation à l'aide du langage Gherkin avec des exemples clairs:
Cucumber est un outil basé sur le framework BDD (Behavior Driven Development). BDD est une méthodologie pour comprendre la fonctionnalité d'une application dans la représentation simple en texte brut.
L'objectif principal du cadre de développement piloté par le comportement est de faire en sorte que divers rôles de projet tels que les analystes commerciaux, l'assurance qualité, les développeurs, etc. comprennent l'application sans plonger profondément dans les aspects techniques.
L'outil concombre est généralement utilisé en temps réel pour rédiger des tests d'acceptation d'une application. L'outil Cucumber prend en charge de nombreux langages de programmation tels que Java, Ruby, .Net, etc. Il peut être intégré à plusieurs outils tels que Selenium, Capybara, etc.
Ce que vous apprendrez:
- Qu'est-ce que Gherkin?
- Avantages du cadre de concombre Gherkin
- Intégration du concombre au sélénium
- Conclusion
Qu'est-ce que Gherkin?
Gherkin est le langage utilisé par l'outil Cucumber. Il s'agit d'une simple représentation anglaise du comportement de l'application. Cucumber utilise le concept de fichiers d'entités à des fins de documentation. Le contenu des fichiers de fonctionnalités est écrit en langage Gherkin.
Dans les rubriques suivantes, nous en verrons plus sur les avantages du framework Cucumber Gherkin, l'intégration de Cucumber avec Selenium, la création d'un fichier d'entités et son fichier de définition d'étape correspondant et un exemple de fichier d'entités.
Termes courants pour le cadre de concombre Gherkin
Le framework Cucumber Gherkin utilise certains mots-clés essentiels à l'écriture d'un fichier d'entités.
Les termes suivants sont les plus couramment utilisés dans les fichiers de fonctionnalités:
# 1) Caractéristique:
Un fichier de fonctionnalités doit fournir une description de haut niveau d'une application en cours de test (AUT). La première ligne du fichier d'entités doit commencer par le mot-clé «Entité» après la description deune applicationsous test. Conformément aux normes prescrites par Cucumber, le fichier d'entités doit inclure les trois éléments suivants comme première ligne.
- Mot-clé de fonctionnalité
- Nom de la fonction
- Description de la fonction (facultatif)
Le mot-clé de fonction doit être suivi d'un nom de fonction. Il peut inclure une section de description facultative qui peut s'étendre sur plusieurs lignes du fichier d'entités. Un fichier d'entités porte l'extension .feature.
# 2) Scénario:
Un scénario est une spécification de test de la fonctionnalité à tester. Idéalement, un fichier d'entité peut contenir un ou plusieurs scénarios dans le cadre de l'entité. Un scénario comprend plusieurs étapes de test. Selon les normes du concombre, un scénario doit inclure 3 à 5 étapes de test, car les scénarios longs ont tendance à perdre leur pouvoir expressif une fois que le nombre d'étapes augmente.
Un scénario peut inclure les étapes suivantes:
- Action à effectuer par un utilisateur.
- Résultats attendus de l'action.
En langage Gherkin, un scénario doit inclure les mots-clés suivants:
- Donné
- Lorsque
- Puis
- Et
Donné:
Le mot-clé donné est utilisé pour spécifier les conditions préalables à l'exécution d'un scénario spécifique. Un scénario peut inclure plus d'une instruction donnée ou il ne peut y avoir aucune instruction donnée pour un scénario.
Lorsque:
Ce mot-clé est utilisé pour spécifier l'action ou un événement effectué par l'utilisateur tel que cliquer sur un bouton, saisir des données dans la zone de texte, etc. Il peut y avoir plusieurs instructions when dans un même scénario.
Puis:
Ensuite, le mot clé est utilisé pour spécifier le résultat attendu d'une action effectuée par l'utilisateur. Idéalement, le mot-clé When doit être suivi du mot-clé Then pour comprendre le résultat attendu des actions de l'utilisateur.
Et:
Et le mot-clé est utilisé comme mot-clé de conjonction pour combiner plusieurs instructions. Par exemple, plusieurs instructions Étant donné et Quand dans un scénario peuvent être combinées à l’aide du mot-clé «Et».
# 3) Aperçu du scénario:
Un aperçu de scénario est un moyen de paramétrer des scénarios.
Ceci est idéalement utilisé lorsque le même scénario doit être exécuté pour plusieurs ensembles de données, mais que les étapes de test restent les mêmes. Le plan du scénario doit être suivi du mot-clé 'Exemples', qui spécifie l'ensemble de valeurs pour chaque paramètre.
Voici l'exemple pour comprendre le concept de plan de scénario:
Exemple:
Aperçu du scénario: Télécharger un fichier
Donné qu'un utilisateur est sur l'écran de téléchargement de fichier.
Lorsque l'utilisateur clique sur le bouton Parcourir.
Et l'utilisateur entre dans la zone de texte de téléchargement.
Et l'utilisateur clique sur le bouton Entrée.
Puis vérifie que le téléchargement du fichier a réussi.
Exemples:
| nom de fichier |
| fichier1 |
| file2 |
Les paramètres dans le contour du scénario doivent être spécifiés avec les caractères «». Une liste de valeurs de données pour le paramètre doit être spécifiée à l'aide du symbole Pipe (|).
# 4) Contexte:
Le mot-clé Background est utilisé pour regrouper plusieurs instructions données dans un seul groupe.
Ceci est généralement utilisé lorsque le même ensemble d'instructions données est répété dans chaque scénario d'un fichier d'entités. Au lieu de spécifier les instructions données pour chaque scénario à plusieurs reprises, elles peuvent être spécifiées avec le mot-clé «Contexte» avant le premier scénario.
Exemple:
Fond:
L'utilisateur donné est sur la page de connexion de l'application
Avantages du cadre de concombre Gherkin
Vous trouverez ci-dessous les avantages du cadre Cucumber Gherkin qui font de Cucumber un choix idéal pour la méthodologie Agile en évolution rapide dans le monde de l'entreprise d'aujourd'hui:
- Cucumber est un outil open-source.
- La représentation en texte brut permet aux utilisateurs non techniques de comprendre plus facilement les scénarios.
- Il comble le fossé de communication entre les différentes parties prenantes du projet telles que les analystes commerciaux, les développeurs et le personnel de l'assurance qualité.
- Les cas de test d'automatisation développés à l'aide de l'outil Cucumber sont plus faciles à gérer et à comprendre.
- Facile à intégrer avec d'autres outils tels que Selenium et Capybara.
Intégration du concombre au sélénium
Le concombre et le sélénium sont les deux outils de test fonctionnel les plus puissants. L'intégration de Cucumber avec Selenium Webdriver aide divers membres non techniques d'une équipe de projet à comprendre le flux de l'application.
Ci-dessous sont les étapes à suivre pour l'intégration de Cucumber avec Selenium Webdriver:
Étape 1:
Le concombre peut être intégré au Selenium Webdriver en téléchargeant les fichiers JAR nécessaires.
Vous trouverez ci-dessous la liste des fichiers JAR à télécharger pour utiliser Cucumber avec Selenium Webdriver:
- couverture-2.1.1.jar
- concombre-core-1.2.2.jar
- concombre-java-1.2.2.jar
- concombre-junit-1.2.2.jar
- concombre-jvm-deps-1.0.3.jar
- rapport-de-concombre-0.1.0.jar
- gherkin-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Les fichiers JAR ci-dessus peuvent être téléchargés à partir du Maven site Internet .
Chacun des fichiers JAR ci-dessus doit être téléchargé individuellement à partir du site Web ci-dessus.
Étape 2:
Créez un nouveau projet dans Eclipse et ajoutez les fichiers JAR ci-dessus au projet. Pour ajouter les fichiers JAR au projet, faites un clic droit sur le projet -> Chemin de construction -> Configurer le chemin de construction.
Cliquer sur Ajouter des fichiers JAR externes et ajoutez la liste des fichiers JAR ci-dessus au projet.
Étape 3:
Avant de créer les fichiers de fonctionnalités et les fichiers de définition d'étape, nous devons installer un plugin Natural dans Eclipse. Cela peut être fait en copiant et en collant le URL sur Aide -> Installer un nouveau logiciel -> URL
Clique sur le Bouton suivant pour installer le plugin dans Eclipse.
Création d'un fichier d'entités
Créez des dossiers séparés pour les fichiers de fonctionnalités et les fichiers de définition d'étape dans la structure du projet. Les fichiers de définition d'étape incluent des lignes de codage Java tandis que le fichier d'entités contient des instructions en anglais sous la forme de langage Gherkin.
- Créez un dossier séparé pour stocker le fichier de fonctionnalités par un clic droit sur le projet -> Nouveau -> Package .
- Le fichier d'entités peut être créé en accédant au clic droit sur le projet / package -> Nouveau -> Fichier .
- Donnez un nom au fichier de fonctionnalités. Le fichier d'entités doit être suivi de l'extension .feature
- La structure du projet doit ressembler à la structure ci-dessous.
Création d'un fichier de définition d'étape
Chaque étape du fichier d'entités doit être mappée à une définition d'étape correspondante. Les balises utilisées sur le fichier Cucumber Gherkin doivent être mappées à sa définition d'étape à l'aide des balises @Given, @When et @Then.
Voici la syntaxe d'un fichier de définition d'étape:
Syntaxe:
@TagName ('^ Nom de l'étape $')
Public void methodName ()
{
Définition de la méthode
}
comment développer un logiciel d'intelligence artificielle
Les noms d'étape doivent être précédés du symbole carat (^) et suffixés du symbole ($). Le nom de méthode peut être tout nom valide acceptable selon les normes de codage Java. La définition de méthode comprend des instructions de codage en Java ou dans tout autre langage de programmation choisi par le testeur.
Exemples de fichiers d'entités et de fichiers de définition d'étape
Pour créer un fichier d'entités et un fichier de définition d'étape, le scénario suivant peut être utilisé:
Scénario:
- Ouvrez la page de connexion d'une application en cours de test.
- Entrez le nom d'utilisateur
- Entrer le mot de passe
- Cliquez sur le bouton Connexion.
- Vérifiez si la connexion de l'utilisateur a réussi.
Fichier de fonctionnalités:
Le scénario ci-dessus peut être écrit sous la forme d'un fichier de fonctionnalités comme ci-dessous:
Fonctionnalité: Connectez-vous à une application en cours de test.
Scénario: Connectez-vous à l'application.
Donné Ouvrez le navigateur Chrome et lancez l'application.
Lorsque L'utilisateur entre le nom d'utilisateur dans le champ UserName.
Et L'utilisateur entre un mot de passe dans le champ Mot de passe.
Lorsque L'utilisateur clique sur le bouton de connexion.
Fichier de définition d'étape:
Dans la fonction ci-dessus, un fichier peut être mappé à son fichier de définition d'étape correspondant comme indiqué ci-dessous. Veuillez noter que pour fournir un lien entre le fichier de caractéristiques et le fichier de définition d'étape, un fichier de testeur doit être créé.
Vous trouverez ci-dessous la représentation du fichier de définition d'étape selon son fichier d'entités.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
La classe TestRunner est utilisée pour fournir le lien entre le fichier d'entités et le fichier de définition d'étape. Voici un exemple de représentation de l'apparence de la classe TestRunner. Une classe TestRunner est généralement une classe vide sans définition de classe.
Package com.sample.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 { }
Nous devons exécuter le fichier de classe TestRunner pour l'exécution des fichiers de fonctionnalités et des fichiers de définition d'étape.
Exemples
Vous trouverez ci-dessous la représentation du fichier d'entités de divers scénarios.
Exemple 1:
Pour vérifier si le nom d'utilisateur et le mot de passe sont disponibles sur la page de connexion:
Fonctionnalité: Vérifiez l'affichage des champs de nom d'utilisateur et de mot de passe sur une page de connexion.
Scénario: Pour vérifier l'affichage des champs de nom d'utilisateur et de mot de passe.
Donné L'utilisateur ouvre le navigateur Firefox et accède à l'application en cours de test.
Lorsque L'utilisateur accède à une page de connexion.
Puis Vérifiez l'affichage du champ du nom d'utilisateur sur la page de connexion.
Et Vérifiez l'affichage du champ de mot de passe sur la page de connexion.
Exemple n ° 2:
Voici l'exemple de mot-clé de plan de scénario dans Cucumber Gherkin:
Fonctionnalité: Vérifiez si la connexion est réussie pour plusieurs ensembles de données de test.
Aperçu du scénario: Pour vérifier si la connexion est réussie pour plusieurs ensembles de données de test.
Donné Ouvrez le navigateur Chrome et lancez l'application.
Lorsque L'utilisateur entre dans le champ UserName.
Et L'utilisateur entre dans le champ Mot de passe.
Lorsque L'utilisateur clique sur le bouton de connexion.
Exemples:
| nom d'utilisateur | mot de passe |
| utilisateur1 | mot de passe1 |
| utilisateur2 | mot de passe2 |
Conclusion
- BDD est une méthodologie pour comprendre la fonctionnalité d'une application dans une représentation simple en texte brut.
- Cucumber est un outil qui utilise le développement piloté par le comportement pour écrire des tests d'acceptation d'une application. Il est utilisé pour combler le fossé de communication entre les différentes parties prenantes du projet.
- L'utilisation principale de Cucumber réside dans sa simplicité pour comprendre l'utilisation des fichiers de fonctionnalités par des utilisateurs non techniques.
Il n'est pas trop tard pour essayer cet outil de concombre en utilisant le langage Gherkin.
lecture recommandée
- Tutoriel Geb - Test d'automatisation du navigateur à l'aide de l'outil Geb
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Test d'automatisation à l'aide de l'outil Cucumber et du sélénium - Tutoriel Selenium # 30
- Qu'est-ce que les tests d'automatisation (Guide ultime pour démarrer l'automatisation des tests)
- Tutoriel Spock: Test avec Spock et Groovy
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Tutoriel sur les tests destructifs et les tests non destructifs
- Test fonctionnel vs test non fonctionnel