Configurer Jenkins pour exécuter et afficher les tests JMeter

1. Vue d'ensemble

Dans cet article, nous allons configurer un pipeline de livraison continue à l'aide de Jenkins et Apache JMeter.

Nous nous baserons sur l'article JMeter comme un excellent point de départ pour comprendre d'abord les bases de JMeter, car il a déjà des tests de performances configurés que nous pouvons exécuter. Et nous utiliserons la sortie de construction de ce projet pour voir le rapport généré par le plugin Jenkins Performance.

2. Configuration de Jenkins

Tout d'abord, nous devons télécharger la dernière version stable de Jenkins, accéder au dossier où se trouve notre fichier et l'exécuter à l'aide de la commande java -jar jenkins.war .

Gardez à l'esprit que nous ne pouvons pas utiliser Jenkins sans une configuration initiale des utilisateurs.

3. Installation du plug-in de performance

Installons le plugin Performance , qui est nécessaire pour exécuter et afficher les tests JMeter:

Maintenant, nous devons nous rappeler de redémarrer l'instance.

4. Exécutez des tests JMeter avec Jenkins

Maintenant, allons à la page d'accueil de Jenkins et cliquez sur «créer de nouveaux jobs», spécifiez un nom, sélectionnez le projet Freestyle et cliquez sur «OK».

À l'étape suivante, dans l' onglet Général , nous pouvons le configurer avec ces détails généraux: Ensuite, définissons l'URL du référentiel et les branches à construire: allez maintenant dans l' onglet Build pour spécifier comment nous allons construire le projet. Ici, au lieu de spécifier directement la commande Maven pour construire l'ensemble du projet, nous pouvons prendre une autre façon de mieux contrôler notre pipeline, car l'intention est simplement de créer un module.

Sur le shell ExecuteSous-onglet nous écrivons un script pour effectuer les actions nécessaires après le clonage du référentiel:

  • Accédez au sous-module souhaité
  • Nous l'avons compilé
  • Nous l'avons déployé, sachant que c'est un projet basé sur le printemps
  • On attend que l'application soit disponible sur le port 8989
  • Et à la fin, nous spécifions simplement à la fois le chemin de notre script JMeter (situé dans le dossier de ressources du module jmeter ) à utiliser pour les tests de performances et le chemin du fichier résultant ( JMeter.jtl ) également dans le dossier de ressources

Voici le petit script shell correspondant:

cd jmeter ./mvnw clean install -DskipTests nohup ./mvnw spring-boot:run -Dserver.port=8989 & while ! httping -qc1 //localhost:8989 ; do sleep 1 ; done jmeter -Jjmeter.save.saveservice.output_format=xml -n -t src/main/resources/JMeter.jmx -l src/main/resources/JMeter.jtl

Comme le montre l'image suivante:

Une fois le projet cloné à partir de GitHub, nous l'avons compilé, ouvert sur le port 8989 et traité les tests de performance, nous devons rendre le résultat d'affichage du plugin de performance d'une manière conviviale.

Nous pouvons le faire en ajoutant des actions post-build dédiées . Nous devons fournir le fichier source des résultats et configurer l'action:

Nous choisissons le mode standard avec les configurations suivantes:

Frappons Enregistrer, dans le menu de gauche du tableau de bord Jenkins, cliquez sur le bouton Construire maintenantet attendez qu'il termine l'ensemble des opérations que nous avons configurées là-haut.

Une fois terminé, nous verrons sur la console toutes les sorties de notre projet. À la fin, nous aurons soit terminé: SUCCÈSou Terminé: ÉCHEC :

Passons au rapport de performancezone accessible via le menu de gauche.

Ici, nous aurons le rapport de toutes les versions passées, y compris la version actuelle, pour voir la différence en termes de performances:

Cliquons sur l'indication juste en haut de la table pour n'avoir que le résultat de la dernière compilation que nous venons de faire:

À partir du tableau de bord de notre projet, nous pouvons obtenir la tendance des performances , qui sont d'autres graphiques montrant les derniers résultats de builds:

Remarque: appliquer la même chose à un projet Pipeline est également simple comme suit:

  1. Créez un autre projet (élément) à partir du tableau de bord et nommez-le JMeter-pipeline par exemple ( Onglet Informations générales )
  2. Sélectionnez Pipeline comme type de projet
  3. Dans l' onglet Pipeline , dans la définition, sélectionnez Pipeline script et cochez Use Groovy Sandbox
  4. Dans la zone de script , remplissez simplement les lignes suivantes:
node { stage 'Build, Test and Package' git '//github.com/eugenp/tutorials.git' dir('jmeter')  kill -KILL \$pid"  } 

Ce script commence par cloner le projet, va dans le module cible, compile et exécute-le pour s'assurer que l'application est accessible à // localhost: 8989

Ensuite, nous exécutons des tests JMeter situés dans le dossier de ressources, enregistrons les résultats en tant que sortie de construction et, enfin, l'application est fermée.

5. Conclusion

Dans cet article rapide, nous avons mis en place un environnement de livraison continue simple pour exécuter et afficher les tests Apache JMeter dans Jenkins de deux manières; d'abord via un projet Freestyle et ensuite avec un Pipeline .

Comme toujours, le code source de cet article se trouve à l'adresse over sur GitHub.