Publié: Août 16, 2020
Utilisation du framework Serenity BDD – Vue d'ensemble
Présentation du framework Serenity BDD
Serenity est une bibliothèque de reporting open source qui permet aux développeurs de rédiger des critères d'acceptation plus faciles à comprendre et mieux structurés pour projets d'automatisation des testsEn plus de générer des rapports pertinents pour chaque test, l'outil affiche également la liste des fonctionnalités testées dans chaque cas de test. Grâce aux détails des tests exécutés et des exigences vérifiées, Serenity BDD Framework vous permet de mieux comprendre le fonctionnement et les fonctionnalités d'une application.
L'avantage du framework Serenity BDD est sa compatibilité avec de nombreuses solutions de tests d'acceptation automatisés. Vous pouvez l'utiliser avec JUnit pour définir rapidement des critères d'acceptation clairs et maintenables, ou l'intégrer à WebDriver pour tester des applications web avec Selenium. Il prend également en charge RestAssured pour tester les API REST. Serenity vous permet d'utiliser n'importe quel outil de développement piloté par le comportement (BDD), comme Cucumber. Vous pouvez aussi utiliser un outil de gestion de cas de test tel que JIRA, ou opter pour une approche basée sur un répertoire.
Qu'est-ce que le BDD ?
BDD signifie Développement piloté par le comportement. Il a en fait évolué à partir de Développement piloté par les tests Le TDD (Test-Driven Development) préconise la rédaction des cas de test avant l'écriture du code. Le BDD (Behavior-Driven Development) adopte la même approche, mais se concentre sur le comportement du système et celui de l'utilisateur. Dans un environnement BDD, les tests sont rédigés dans un langage commun, permettant à toutes les parties prenantes (techniques et non techniques) de comprendre le fonctionnement de l'application. Cela facilite également la collaboration entre les différentes équipes. La possibilité de rédiger des cas de test dans un langage commun comme l'anglais représente un atout majeur pour les développeurs lors de la préparation des critères de tests d'acceptation. Il est ainsi possible de rédiger des cas de test décrivant des scénarios réalistes.
Historique et principaux concepts du BDD
C'est Daniel Terhorst-North qui a été le pionnier du développement de la méthodologie BDD en 2003. Liz Keogh a contribué au concept en 2004 avec Chris Matts et a développé le modèle « Étant donné / Quand / Alors » pour la capture des récits utilisateurs et leur conversion en un format exécutable. Ce concept s'inspirait du « Domain Driven Design » d'Eric Evans. Une autre source d'inspiration provenait du modèle de récit utilisateur « En tant que / Je / Afin que » créé par Rachel Davies. En 2005, Dave Astels, David Chelimsky, Steven Baker et Aslak Hellesoy ont fondé le projet RSpec, qui prenait en charge le BDD en Ruby. En améliorant ce projet, Aslak a conçu une version améliorée de RSpec Story Runner, qu'il a nommée Cucumber.
Dans une approche BDD, les exigences sont converties en récits utilisateurs et en scénarios utilisateurs valides.
Voici un exemple de modèle BDD :
- Donné
- Lorsque vous
- Ensuite
Un autre exemple est
- En tant que client premium
- Je souhaite (parcourir les nouveautés dans le secteur des accessoires de mode)
- Pour que (je puisse commander les meilleurs vêtements)
La méthode BDD s'accompagne d'une courbe d'apprentissage minimale.wing to L'utilisation d'un langage commun facilite la collaboration entre les différentes équipes. Ici, vous définissez le comportement et non le test. Ainsi, les critères d'acceptation sont définis avant le développement du code, ce qui est avantageux pour les responsables métiers car ils comprennent clairement le fonctionnement de l'application au lieu de se concentrer sur ses fonctionnalités.
Cucumber et Serenity sont deux frameworks BDD populaires.
Premiers pas avec le framework Serenity BDD
Ces composants exécutent le framework Serenity BDD. Ils sont tous requis.
- Java
- IntelliJ IDE
- gradle
- Plugin Serenity BDD
Étape 1: Installer Java
Pour télécharger Java, veuillez suivre le lien suivant :
https://www.oracle.com/in/java/technologies/javase-downloads.html
Téléchargez le kit de développement Java (JDK)
Java SE 14.0.2 est la dernière version de la plateforme Java Standard Edition. Acceptez le contrat de licence et poursuivez le téléchargement.
Une fois le logiciel téléchargé, double-cliquez sur l'application et installez Java.
Choisissez le dossier de destination et cliquez sur Suivant.
Le programme d'installation installe Java sur votre ordinateur. Cliquez sur Fermer pour terminer l'installation.
Pour vérifier si vous avez correctement installé Java, ouvrez l'invite de commandes et tapez la commande version.
- java -version
Étape 2 : Configurer les variables d'environnement
Pour utiliser Java, vous devez configurer les variables d'environnement. Ajoutez le chemin d'accès à Java dans les variables système et les paramètres des variables utilisateur. Pour ce faire,
- Cliquez sur Système -> Paramètres système avancés -> Avancé -> Variables d'environnement
Vérifiez si le chemin d'accès à Java est ajouté aux variables système et aux variables utilisateur.
Java est maintenant prêt à être utilisé.
Étape 3 : Installer l’IDE
Pour écrire et exécuter des tests avec le framework Serenity BDD, vous avez besoin d'un EDI moderne. Vous pouvez choisir entre IntelliJ et Eclipse. Pour installer IntelliJ, rendez-vous sur le site web suivant.
https://www.jetbrains.com/idea/
Cliquez sur le bouton Télécharger pour télécharger l'outil. IntelliJ est proposé en deux versions : Ultimate, avec une période d'essai de 30 jours, et Community, une version gratuite et open source. Choisissez la version Community pour vos tests.
Double-cliquez maintenant sur le logiciel IntelliJ pour lancer la procédure d'installation.
Cliquez sur Suivant et choisissez l'emplacement d'installation.
L'écran suivant vous invite à personnaliser les options d'installation.
Vous pouvez créer un raccourci sur le bureau ou modifier le menu contextuel. L'option « Mettre à jour la variable PATH » est particulièrement importante. En la sélectionnant, les variables d'environnement seront automatiquement configurées. Vous n'aurez ainsi plus besoin d'ajouter manuellement le chemin d'accès à IntelliJ aux variables système et utilisateur.
Sur l'écran suivant, choisissez l'option du menu Démarrer et cliquez sur Suivant pour poursuivre l'installation.
Une fois l'installation terminée, un message vous invitera à redémarrer le système. Vous pourrez alors choisir de le redémarrer manuellement.
Après le redémarrage du système, ouvrez l'IDE IntelliJ. Lors de la première ouverture, il vous sera demandé d'accepter la politique de confidentialité.
Sur l'écran suivant, choisissez votre préférence en matière de partage de données.
L'IDE s'ouvre maintenant.
Il est donc prêt à l'emploi. Vous pouvez choisir l'interface utilisateur Dracula (en mode sombre) ou Light (en mode clair).
L'outil est maintenant prêt. Vous pouvez choisir un nouveau projet ou en ouvrir un existant.
Étape 4 : Installer Gradle
Pour exécuter des tests et générer des rapports, vous devez ajouter un outil de compilation tel que Maven ou Gradle. Vous pouvez télécharger Maven ici :
https://maven.apache.org/download.cgi
Pour Gradle, veuillez consulter ce lien :
https://gradle.org/next-steps/?version=6.5.1&format=all
Créez un dossier appelé Gradle sur votre disque C et décompressez-y le package Gradle.
Étape 5 : Configurer les variables d’environnement
Pour utiliser Gradle, vous devez configurer les variables d'environnement. Suivez les étapes décrites à l'étape 2 pour accéder aux paramètres des variables d'environnement. Ajoutez le chemin suivant dans les variables système.
- C:\Gradle\gradle-6.5.1\bin
Pour vérifier si Gradle est correctement configuré, ouvrez une fenêtre d'invite de commandes et saisissez la commande version.
- Gradle -version
Gradle fonctionne donc correctement.
Étape 6 : Ajouter le plugin Serenity BDD
Pour exécuter vos tests avec le framework Serenity BDD, vous devez ajouter le plugin Serenity. Pour ce faire, ouvrez l'IDE IntelliJ.
Cliquez sur Nouveau projet. Dans le menu de gauche, choisissez Gradle.
Choisissez un nom et l'emplacement du dossier de compilation, puis cliquez sur Terminer.
L'outil téléchargera les fichiers nécessaires et créera un nouveau projet Gradle.
Une fois la compilation terminée, un message indiquant que la compilation a réussi s'affichera.
Ajout du plugin Serenity BDD
Pour appliquer le plugin Serenity BDD Framework au projet, ouvrez le fichier build.gradle et modifiez-le avec le code suivant.
[javascript] apply plugin: 'java' apply plugin: 'net.serenity-bdd.aggregator' repositories { mavenLocal() jcenter() } buildscript { project.ext { serenityVersion = '2.2.12' } repositories { mavenLocal() jcenter() } dependencies { classpath('net.serenity-bdd:serenity-gradle-plugin:' + serenityVersion) } } dependencies { testCompile 'junit:junit:4.12' testCompile 'net.serenity-bdd:serenity-core:' + serenityVersion testCompile 'net.serenity-bdd:serenity-junit:' + serenityVersion testCompile 'org.assertj:assertj-core:3.4+' testCompile 'org.slf4j:slf4j-simple:1.7+' } gradle.startParameter.continueOnFailure = true [/javascript]
Notez que le code mentionne serenityVersion. La dernière version est la 2.2.12. Lorsque vous exécuterez le code, le plugin Serenity 2.2.12 sera installé.
Avec le plugin Gradle Serenity, toutes les dépendances seront installées. Dans cet exemple, la bibliothèque de tests JUnit est ajoutée. Vous pouvez également choisir n'importe quelle autre bibliothèque de tests et l'ajouter aux dépendances.
Ouvrez maintenant la fenêtre d'invite de commandes et saisissez la commande suivante.
- Agrégat de tests Gradle
La compilation a réussi. Les rapports de test sont stockés dans le dossier racine : C:\Experitest\Serenity\targets\sites\serenity. En ouvrant le fichier HTML index, vous pouvez consulter les rapports de test générés par le framework Serenity BDD. Grâce à l'option `continueOnFailure`, les tests continueront de s'exécuter même si certains échouent.
Exécuter votre premier test
Voici un exemple de test utilisant un site de démonstration http://decohere.herokuapp.comCe projet authentifie la tâche de connexion d'un utilisateur et vérifie si celui-ci est en mesure de se connecter et d'accéder à la page d'accueil.
Ouvrez votre projet ExperitestSerenity dans l'IDE IntelliJ.
Voici la liste des packages et des classes créés pour ce projet.
WhenAuthenticating.java
Il s'agit de la classe principale qui vérifie si l'utilisateur se trouve sur la page d'accueil, se connecte au compte en tant qu'administrateur et accède avec succès à la page de bienvenue.
[javascript] package ExperitestTC1.features.authentication; import ExperitestTC1.steps.DecohereUser; import net.serenitybdd.junit.runners.SerenityRunner; import net.thucydides.core.annotations.Managed; import net.thucydides.core.annotations.Steps; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @RunWith(SerenityRunner.class) public class WhenAuthenticating { @Steps private DecohereUser user; @Managed(driver = “chrome”) WebDriver browser; @Test public void shouldBeAbleToLoginAsAdmin() { user.isOnTheHomePage(); user.logsInAsAdmin(); user.shouldBeOnLandingPage(); } } [/javascript]
DecohereUser.java
Cette classe fournit les détails de la page d'accueil de la classe principale.
[javascript] package ExperitestTC1.steps; import ExperitestTC1.ui.DecohereHomePage; import ExperitestTC1.ui.LandingPage; import net.thucydides.core.annotations.Step; import static org.assertj.core.api.Assertions.assertThat; public class DecohereUser { private DecohereHomePage decohereHomePage; private LandingPage landingPage; @Step public void isOnTheHomePage() { decohereHomePage.open(); } @Step public void logsInAsAdmin() { decohereHomePage.loginAsAdmin(); } @Step public void shouldBeOnLandingPage() { assertThat(landingPage.noticeMessage()).isEqualTo(“Vous êtes maintenant connecté en tant qu'admin@decohere.com.”); } } [/javascript]
DecohereHomePage.java
Cette classe fournit le nom d'utilisateur et le mot de passe pour se connecter au site.
[javascript] package ExperitestTC1.ui; import net.serenitybdd.core.pages.PageObject; import net.thucydides.core.annotations.DefaultUrl; @DefaultUrl(“https://decohere.herokuapp.com/”) public class DecohereHomePage extends PageObject { public void loginAsAdmin() { $(“#openLogin”).click(); $(“#username”).sendKeys(“admin@decohere.com”); $(“#password”).sendKeys(“admin”); $(“#login”).click(); } } [/javascript]
Page d'accueil.java
Cette classe affiche le message de la page de bienvenue.
[javascript] package ExperitestTC1.ui; import net.serenitybdd.core.pages.PageObject; public class LandingPage extends PageObject { public String noticeMessage() { return $(“.notice”).getText(); } } [/javascript]
Lorsque vous exécutez le test dans l'IDE IntelliJ, la page d'accueil de Decohere s'ouvre et vous vous connectez à votre compte. Serenity BDD génère alors un rapport contenant les détails du test.
Résumé
La bibliothèque de reporting pratique du framework Serenity BDD permet d'exécuter des tests d'acceptation mieux structurés et plus faciles à comprendre. Grâce aux rapports générés pour chaque action à chaque étape, les développeurs peuvent comprendre le fonctionnement de chaque fonctionnalité et identifier rapidement les erreurs. Les bibliothèques d'étapes Serenity permettent d'annoter les méthodes avec l'annotation `@Step` afin d'orchestrer les appels à différentes couches telles que les bases de données, les services web et les objets de page. En résumé, le framework Serenity BDD est un excellent choix pour les tests d'acceptation.
Continuous Testing Il s'agit de faire tomber les barrières. Voyez à quel point c'est important. tests continus dans le cloud reste d'actualité en 2021 avec cette vidéo de webinaire.
Vous aimerez aussi
Le premier appareil pliable d'Apple est arrivé. Votre application est-elle prête ?
Le premier iPhone pliable d'Apple, l'iPhone Duo, introduit quelque chose de fondamentalement différent…
Les tests sont plus faciles à réaliser. Leur gestion devient plus difficile.
L'automatisation des tests est en constante progression. Les équipes développent de plus en plus de tests Appium…
Les nouvelles tentatives ne corrigeront pas un mauvais localisateur
Un test de connexion réussit le lundi, échoue le mardi, et…































