Les applications Web sont devenues essentielles pour les entreprises qui recherchent des moyens avancés de se connecter et de servir leur public cible dans le domaine numérique. Étant donné l’importance des applications Web dans les opérations commerciales de nos jours, quel que soit le secteur, elles doivent être testées de manière exhaustive pour garantir qu’elles offrent des expériences utilisateur haut de gamme.
Les tests d’automatisation accélèrent le cycle de vie du développement logiciel. De plus, en adoptant l’approche de développement piloté par le comportement (BDD), différentes parties prenantes telles que les développeurs, les QA et les équipes non techniques peuvent collaborer activement dans le projet.
Les scénarios sont écrits en fonction du comportement attendu du logiciel et il est testé pour vérifier s’il correspond auxdits scénarios.
Source de l’image
Ces scénarios sont documentés à l’aide d’un langage spécifique au domaine tel que Gherkin. Dans chaque scénario de test, des constructions en langage naturel constituant de petites phrases de type anglais sont utilisées pour décrire le comportement et le résultat attendu d’une application. Cela se fait à l’aide d’un outil logiciel dédié comme Cucumber, qui permet l’exécution de tests d’acceptation automatisés écrits en Gherkin.
Qu’est-ce que Cucumber?
Cucumber est un framework de test open-source qui prend en charge le développement piloté par le comportement pour les tests d’automatisation des applications Web. Les tests sont d’abord écrits sous forme de scénario simple qui décrit le comportement attendu du système du point de vue de l’utilisateur.
Largement utilisé pour les tests d’acceptation, Cucumber est écrit en Ruby, tandis que les tests sont écrits en Gherkin, un langage non technique et lisible par l’homme.
Tests de concombre et de sélénium: une approche collaborative
Alors que les tests automatisés de sélénium ajoutent précision et rapidité au cycle de développement, Cucumber ajoute un avantage supplémentaire à lui, ce qui le rend plus collaboratif pour les parties prenantes de gestion non techniques. Largement bénéfique pour les tests d’acceptation des utilisateurs où les scénarios de test sont en grande partie déterminés par le comportement, Cucumber renforce les tests d’automatisation.
Le framework Cucumber
Le framework Cucumber se compose principalement de trois parties principales – Feature File, Définitions d’étape, et le fichier Test Runner.
Fichier de fonctionnalités
Une unité autonome ou une seule fonctionnalité (comme une connexion) pour un projet peut être appelée une fonctionnalité. Chacune de ces fonctionnalités aura des scénarios qui doivent être testés à l’aide de Selenium intégré à Cucumber. Un fichier qui stocke des données sur les fonctionnalités, leurs descriptions et les scénarios à tester est appelé un fichier d’entités.
Les tests de concombre sont écrits dans ces fichiers d’entités qui sont stockés avec l’extension – « .feature » . Un fichier d’entités peut recevoir une description pour rendre la documentation plus lisible.
Exemple:
La fonction de connexion sur un site Web
Nom du fichier d’entités: userLogin .fonctionnalité
Description: l’utilisateur doit pouvoir se connecter en saisissant le nom d’utilisateur et le mot de passe corrects dans les champs appropriés. L’utilisateur doit être dirigé vers la page d’accueil si le nom d’utilisateur et le mot de passe saisis sont corrects.
Les mots clés tels que GIVEN, WHEN et THEN utilisés pour écrire le test dans Cucumber sont appelés Annotations.
- L’utilisateur GIVEN accède à la page de connexion en ouvrant Firefox
- LORSQUE l’utilisateur entre le < nom d’utilisateur > AND < mot de passe > valeurs
- ALORS l’utilisateur est dirigé vers t La page d’accueil
Définitions des étapes
Maintenant que les fonctionnalités sont écrites dans les fichiers de fonctionnalités, le code du scénario associé doit être exécuté. Pour savoir quel lot de code doit être exécuté pour un scénario donné, les définitions d’étapes entrent en ligne de compte. Un fichier de définitions d’étapes stocke les données de mappage entre chaque étape d’un scénario défini dans le fichier d’entités et le code à exécuter.
Les définitions d’étape peuvent utiliser à la fois les commandes Java et Selenium pour les fonctions Java écrites pour mapper un fichier de fonctionnalité au code.
Exemple:
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values
read more