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 as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature
Fichier Runner de test
Pour exécuter le test, un nécessite un fichier Test Runner, qui est une classe JUnit Test Runner contenant l’emplacement de la définition de l’étape et les autres métadonnées principales requises pour exécuter le test.
Le fichier Test Runner utilise l’annotation @RunWith () de JUnit pour exécution de tests. Il utilise également l’annotation @CucumberOptions pour définir l’emplacement des fichiers d’entités, des définitions d’étape, des intégrations de rapports, etc.
Exemple:
Test Runner Class dans le package cucumberTest, avec les fichiers d’entités dans l’emplacement «src / test / Feature» et les fichiers de définition d’étape dans le dossier «src / main / stepDefinition».
Configuration de Cucumber Framework
Avant d’explorer le fonctionnement de Cucumber et comment écrire un test de sélénium de concombre, voyons d’abord comment configurer le concombre.L’installation des prérequis mentionnés ci-dessous est tout ce dont un utilisateur a besoin pour commencer le test d’automatisation du concombre.
Prérequis pour la configuration du concombre et du sélénium
- Installer Java
- Installer Eclipse IDE pour Java
- Installer Maven
- Installer Selenium Webdriver
- Installer JUnit
- Installer Cucumber
Comment écrire un test dans Cucumber pour Selenium Automation?
En suivant le scénario de la fonction de connexion, créons un exemple de test dans Cucumber. Ce code exécutera le scénario de connexion décrit dans la section Fonctionnalité et ouvrira la page d’accueil du site Web en entrant le bon nom d’utilisateur et le bon mot de passe.
Meilleures pratiques en matière de test de concombre
Voici quelques-unes des les meilleures pratiques en matière de test de concombre:
- Les versions des bocaux Cucumber-java, Cucumber-junit et Cucumber-core devraient être les mêmes pour une connectivité transparente.
- Ajout d’un after hook au code pour capturer des captures d’écran lorsque le test échoue peut aider à diagnostiquer le problème et à le déboguer.
- Utilisez des balises pour organiser les tests en fonction de la définition des balises. Cela aide dans les cas où tous les tests ne doivent pas être exécutés à chaque fois. Ces tests peuvent être marqués à l’aide de balises et exécutés uniquement lorsque cela est nécessaire. Cela permet d’économiser du temps et de la capacité de traitement du système et des ressources.
- Comme toujours, il est important d’exécuter les tests Cucumber Selenium sur de vrais navigateurs et appareils. BrowserStack propose une grille Cloud Selenium de plus de 2000 navigateurs et appareils réels à des fins de test – à la fois en direct et automatisés. Inscrivez-vous simplement, choisissez la combinaison appareil-navigateur-système d’exploitation requise et commencez à tester des sites Web gratuitement.
Exécutez des tests Selenium gratuitement
L’automatisation des tests est absolument essentielle pour répondre aux demandes croissantes de livraison plus rapide et de qualité optimale des testeurs. Le framework Cucumber dans Selenium permet d’écrire des scénarios de test à l’aide de constructions en langage naturel qui décrivent le comportement attendu du logiciel pour un scénario donné, ce qui le rend idéal pour les tests d’acceptation par l’utilisateur.
Enfin, tester des sites Web sur un appareil réel le cloud est le seul moyen d’assurer l’exactitude complète des résultats. Alors, optez toujours pour des tests d’appareils réels pour vérifier de manière exhaustive les performances du site Web, la compatibilité entre les navigateurs et la qualité de l’expérience utilisateur qu’il offre.