Introduction aux tests de performances à l'aide de JMeter

1. Vue d'ensemble

Dans cet article, nous allons utiliser Apache JMeter pour configurer et exécuter des tests de performances.

2. Configuration de JMeter

Téléchargeons JMeter, décompressons-le, allons dans le dossier bin et exécutons l'exécutable (* .bat pour Windows et * .sh pour Linux / Unix).

Ensuite, nous devons simplement ajouter ce dossier à la variable d'environnement path afin qu'il soit accessible à partir de la ligne de commande.

La version la plus stable au moment de la rédaction est la 3.3 - nous pouvons vérifier la version la plus récente ici.

3. Création de scripts JMeter

Écrivons maintenant notre premier script JMeter (un fichier contenant une description technique de nos tests).

Cette API est une simple application SpringBoot exposant une API REST.

Mettons à jour le plan de test et changeons d'abord son nom, puis ajoutons un groupe de threads .

Un groupe de threads nous permet de connaître le flux des utilisateurs et simule comment ils interagissent avec l'application, faites un clic droit sur le nom de notre script sur l'interface graphique et suivez le menu sélectionné:

Nous nous dirigeons maintenant vers la partie configuration du Thread Group , où nous spécifions le nombre d'utilisateurs faisant des demandes à notre application en parallèle:

Ici, nous avons spécifié des paramètres tels que:

- Nom: le nom que nous voulons donner au groupe de threads

- Le nombre de Threads (utilisateurs) : le nombre d'utilisateurs parallèles

- Temps de montée : temps nécessaire pour passer de 0 au nombre d'utilisateurs déclaré

- Nombre de boucles : nombre de répétitions

Ajoutez une requête HTTP car c'est celle que nous simulerons comme provenant de chacun des 5 utilisateurs.

Remplissons les informations pour adresser notre API décrite là-haut comme dans l'image ci-dessous:

Nous remplissons simplement l'adresse du site Web, le port et le chemin d'accès spécifique.

Ensuite, simulons les demandes des utilisateurs après avoir ajouté une arborescence Afficher les résultats (utilisez Afficher les résultats dans le tableau si les résultats sont une liste d'enregistrements) en suivant le menu « Ajouter> Écouteur» .

Appuyez sur le bouton droit de la flèche verte en haut pour exécuter le test et voir les données de réponse:

Nous pouvons voir une représentation plus détaillée de la réponse sur l' onglet des résultats de l' échantillonneur .

Terminons en ajoutant une assertion de durée dans la requête HTTP , donc chaque requête qui dure plus de dix millisecondes sera considérée comme un test ayant échoué:

Après avoir relancé le test, nous voyons qu'il y a certains (ici c'est 3) utilisateurs qui ne peuvent pas obtenir les listes d'étudiants en moins de dix millisecondes:

Maintenant, sauvegardons le test avec l'extension .jmx dans le dossier de ressources de l'API.

Plus d'éléments sont disponibles pour configurer notre fichier de test:

  • Requête JDBC: utile pour envoyer une requête JDBC (requête SQL) à une base de données, avant de l'utiliser, nous devons configurer un élément de configuration de connexion JDBC
  • Assertion XML: teste que les données de réponse sont d'un document XML correctement correct
  • Assertion de taille: affirme que la réponse contient le bon nombre d'octets
  • JMS Publisher: pour publier des messages sur une cible donnée (rubrique / file d'attente) suivant la spécification J2EE pour la messagerie

Tous les composants disponibles sont détaillés dans le manuel d'utilisation.

4. Exécutez les tests JMeter

Il existe deux façons d'exécuter des tests JMeter, l'une consiste à utiliser le plugin Maven disponible et l'autre l'application JMeter autonome en mode non-GUI.

Dans tous les cas, les deux doivent savoir où accéder au script JMeter que nous avons configuré précédemment.

4.1. Plugin JMeter Maven

JMeter Maven Plugin est un plugin Maven qui offre la possibilité d'exécuter des tests JMeter dans le cadre de notre build; sa dernière version actuellement est la 2.6.0 qui est compatible avec Apache JMeter 3.3.

Ajoutons-le au pom.xml de notre projet:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0   jmeter-tests  jmeter     ${project.basedir}/src/main/resources ${project.basedir}/src/main/resources  

Après cela, nous pouvons exécuter tous nos tests avec mvn verify ou juste ceux de JMeter avec mvn jmeter: jmeter ; voici la sortie console de la commande:

Remarque: Ici nous avons spécifié le répertoire où se trouvent nos tests dans le projet, soit celui par défaut ( $ {project.basedir} / src / test / jmeter ) sera choisi; de même est configuré le répertoire de résultats sinon celui par défaut sera $ {project.basedir} / target / jmeter / results .

La documentation complète du plugin est accessible ici.

4.2. Mode non-GUI

L'autre façon de le faire est via l'exécutable JMeter, en supposant qu'il soit disponible via la ligne de commande, nous pouvons le faire:

jmeter -Jjmeter.save.saveservice.output_format = xml

-n -t src / main / ressources / JMeter.jmx -l src / main / resources / JMeter.jtl

Nous définissons XML comme format de sortie, qui remplit le fichier de test exact et celui du résultat.

Remarque: il est recommandé de ne pas utiliser le mode GUI pour les tests de charge, uniquement pour la création de tests et le débogage des tests.

5. Conclusion

Dans ce tutoriel rapide, nous avons configuré Apache JMeter sur une application SpringBoot pour exécuter des tests de performances avec un plugin Maven tout en cherchant pratiquement à concevoir un test de performance de base.

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