Utilisation du framework Serenity BDD – Vue d'ensemble

Dernière mise à jour le 16 août 2020 — Guy Arieli, CTO Qualité

 

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.

  1. Java
  2. IntelliJ IDE
  3. gradle
  4. 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)

framework Serenity BDD 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.

Serenity BDD Framework Accepter

Une fois le logiciel téléchargé, double-cliquez sur l'application et installez Java.

Installation de Java Serenity BDD Framework

Choisissez le dossier de destination et cliquez sur Suivant.

Kit de développement Java Serenity BDD Framework

Le programme d'installation installe Java sur votre ordinateur. Cliquez sur Fermer pour terminer l'installation.

Serenity BDD Framework Fermer

Pour vérifier si vous avez correctement installé Java, ouvrez l'invite de commandes et tapez la commande version.

  • java -version

Version Java du framework Serenity BDD

É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.

Vérifiez si le chemin d'accès à Java est ajouté aux variables système.

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/

framework BDD Serenity d'IntelliJ 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.

framework BDD Serenity d'IntelliJ IDEA

Double-cliquez maintenant sur le logiciel IntelliJ pour lancer la procédure d'installation.

installation d'IntelliJ

Cliquez sur Suivant et choisissez l'emplacement d'installation.

idée intellij

L'écran suivant vous invite à personnaliser les options d'installation.

installation d'IntelliJ

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.

idée intellij

Une fois l'installation terminée, un message vous invitera à redémarrer le système. Vous pourrez alors choisir de le redémarrer manuellement.

intellij finish

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é.

Politique de confidentialité d'IntelliJ

Sur l'écran suivant, choisissez votre préférence en matière de partage de données.

partage de données IntelliJ

L'IDE s'ouvre maintenant.

framework BDD Serenity d'IntelliJ

Il est donc prêt à l'emploi. Vous pouvez choisir l'interface utilisateur Dracula (en mode sombre) ou Light (en mode clair).

IntelliJ personnalisé

L'outil est maintenant prêt. Vous pouvez choisir un nouveau projet ou en ouvrir un existant.

intellij ouvert

É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

framework Gradle Serenity BDD

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.

intellij nouveau

Cliquez sur Nouveau projet. Dans le menu de gauche, choisissez Gradle.

framework Gradle Serenity BDD

Choisissez un nom et l'emplacement du dossier de compilation, puis cliquez sur Terminer.

finition Gradle

L'outil téléchargera les fichiers nécessaires et créera un nouveau projet Gradle.

téléchargement de Gradle

Une fois la compilation terminée, un message indiquant que la compilation a réussi s'affichera.

succès de Gradle

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]

Cadre BDD de sérénité

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é.

Cadre BDD de sérénité

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.

Cadre BDD de sérénité

Ouvrez maintenant la fenêtre d'invite de commandes et saisissez la commande suivante.

  • Agrégat de tests Gradle

Cadre BDD de sérénité

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.

Cadre BDD de sérénité

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.

ouvrir 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ésultats du framework Serenity BDD

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