Tutoriel de test de charge JMeter



Vue d’ensemble des tests de charge JMeter

Chaque application web a une capacité de charge maximale, et la dépasser peut entraîner des ralentissements, des erreurs ou une inefficacité générale. Le test de charge est crucial pour évaluer la performance d’une application web. Ce type de test est un élément vital du cycle de vie du développement logiciel et applicatif, surtout lorsqu’il s’agit d’applications web, de sites ou d’API censés gérer un trafic utilisateur important. Pour garantir que vos applications peuvent fonctionner sous des pics ou des charges soutenues élevées, il est essentiel d’utiliser des outils de test de performance. Apache JMeter est un choix populaire à cet effet, et si vous êtes nouveau dans le test de performance, vous vous demandez peut-être ce qu’est JMeter ? Et comment fonctionne JMeter ? Nous allons examiner JMeter et comment utiliser JMeter pour les tests de performance.

Qu’est-ce que le test de charge ?

Le test de charge est un type de test de performance permettant de déterminer comment votre application web se comporte en conditions normales et de charge maximale, voire de trouver le point de rupture. C’est la pratique de simuler une utilisation réelle, ou charge, sur un logiciel, un site web, une application web, une API ou un système afin d’analyser et d’identifier des facteurs tels que la réactivité, la dégradation et la scalabilité.

Outils pour le test de charge

Les outils de test de charge sont extrêmement importants pour rationaliser vos besoins en test de charge et améliorer votre performance digitale. Le marché actuel regorge d’une variété d’outils et de plateformes aux fonctionnalités diverses. Il y a de nombreux outils de test de charge tels que :

    • LoadView
    • Apache JMeter
    • WebLOAD
    • LoadRunner
    • Tricentis NeoLoad
    • LoadNinja

Pour ce guide, nous allons nous concentrer sur les tests de charge avec JMeter. Nous répondrons à quelques questions telles que : qu’est-ce que JMeter, comment faire un test de charge JMeter, et comment utiliser JMeter pour les tests de performance d’API.

Qu’est-ce que le test de charge JMeter ?

Apache JMeter, aussi appelé JMeter, est un logiciel open source largement utilisé, conçu comme une application 100 % Java pure pour réaliser des tests de charge du comportement fonctionnel et évaluer la performance. C’est un outil privilégié parmi les développeurs et les équipes de développement logiciel pour les tests de performance grâce à sa documentation étendue, son fort soutien communautaire et les meilleures pratiques établies. De plus, étant gratuit et open source, il constitue un choix économique, mais puisque c’est 100 % Java, votre équipe peut nécessiter du temps et des ressources supplémentaires pour initier les processus de test.

JMeter supporte une gamme de protocoles, notamment HTTP, HTTPS, FTP, et plus encore, ce qui le rend polyvalent pour tester différents types d’applications. Les utilisateurs peuvent créer et exécuter des plans de test qui définissent divers scénarios, comme simuler des interactions utilisateur, surveiller la performance du serveur et analyser les temps de réponse.

Le test de charge JMeter est conçu pour réaliser des tests de charge sur le comportement fonctionnel et mesurer sa performance. De nombreuses équipes intègrent également les tests JMeter dans les pipelines CI/CD pour exécuter des vérifications de performance durant les builds et déploiements. Vous pouvez utiliser JMeter pour analyser et mesurer la performance des applications ou services web. En analysant les données collectées et en générant des rapports, vous pouvez observer le comportement de l’application et identifier les goulets d’étranglement en performance, offrant des informations précieuses sur les domaines nécessitant des améliorations.

Pourquoi utiliser JMeter ?

  • Open source : JMeter est complètement gratuit, et les développeurs ont accès au code source.
  • Indépendant de la plateforme : JMeter est indépendant de la plateforme et peut fonctionner sur plusieurs systèmes d’exploitation.
  • Support multi-protocoles : JMeter supporte à la fois les tests d’applications web et la performance des services de base de données. Il prend en charge tous les protocoles de base comme HTTP, JDBC, LDAP, SOAP, JMS et FTP.
  • Enregistrement et lecture : JMeter permet d’enregistrer l’activité utilisateur sur un navigateur à simuler, puis de rejouer cet enregistrement.
  • Rapports personnalisables : Visualisez vos résultats de test dans différents formats tels que graphiques, tableaux, arbres et fichiers journaux.
  • Soutien communautaire : Une grande communauté offre aide, conseils et tutoriels.
  • Extensibilité : JMeter peut être étendu avec des plugins pour améliorer ses fonctionnalités, permettant aux utilisateurs d’adapter l’outil à leurs besoins spécifiques.
  • Scalabilité cloud limitée par défaut : JMeter fonctionne généralement localement sauf s’il est configuré pour des tests distribués, ce qui nécessite une configuration supplémentaire.

Avantages des tests de charge avec JMeter

JMeter est un outil fantastique pour les tests de charge qui offre de nombreux avantages en faisant un favori parmi les testeurs. Pour commencer, il est complètement gratuit et open source, ce qui signifie que vous n’avez pas à vous soucier des contraintes budgétaires, il est accessible à tous ! De plus, il est assez puissant pour simuler des scénarios réels qui vous donnent une image claire de la performance de votre application sous différents types de charge.

Un des meilleurs atouts de JMeter est sa scalabilité. Que vous exécutiez de petits tests ou simuliez un trafic à grande échelle, il peut tout gérer sans sourciller. Et n’oublions pas ses fonctions détaillées de rapport et d’analyse. Ces outils vous aident à localiser les problèmes de performance tôt, rendant l’optimisation de votre application plus simple et vous permettant de la garder fluide.

Ce que nous aimons chez JMeter, c’est sa simplicité d’utilisation ! Vous n’avez pas besoin d’être un pro du codage pour créer des scénarios complexes, JMeter reste simple et intuitif. De plus, ses fonctionnalités intégrées de rapports et de visualisation facilitent l’analyse des résultats et l’identification des goulots d’étranglement en performance. En résumé, JMeter est un outil fiable et facile à utiliser qui garantit que vos applications peuvent gérer tout ce qui se présente à elles !

    Comment réaliser un test de charge avec JMeter

    Examinons quelques-unes des étapes impliquées dans l’utilisation de JMeter pour le test de charge et comment configurer un test de charge basique.
     

    Étape 1 : Vérifier la compatibilité système pour l’installation de JMeter

    Avant de procéder à l’installation de JMeter, il est crucial de s’assurer que votre système répond aux exigences. JMeter est basé sur Java, vous devez donc avoir Java 8 ou une version supérieure installée sur votre système. Confirmez que votre système d’exploitation est compatible avec JMeter. JMeter est conçu pour fonctionner sur divers systèmes, y compris Windows, Linux et macOS.

    Une fois que vous avez confirmé que votre système répond à ces exigences de base, vous êtes prêt à procéder à l’installation de JMeter. Cela garantit une installation fluide et des performances optimales lors des tests de charge.
     

    Étape 2 : Télécharger et installer JMeter pour votre système

    Après avoir vérifié que votre système remplit toutes les conditions nécessaires, procédez au téléchargement de la dernière version de JMeter—en choisissant entre les fichiers binaires ou sources selon vos besoins spécifiques. Les fichiers binaires, comprenant des versions pré-compilées de JMeter, peuvent être exécutés immédiatement, tandis que les fichiers sources offrent la flexibilité d’une configuration manuelle et compilation par les développeurs ou équipes. Habituellement, les versions binaires sont préférées pour leur facilité d’installation. Différents types de fichiers de téléchargement, tels que .zip et .tgz, sont disponibles.

    Une fois que vous avez choisi votre version préférée, téléchargez-la sur votre système. Vous pouvez ensuite ouvrir le fichier, le déplacer vers un emplacement désigné ou créer un nouveau dossier pour un accès futur. Commencez le processus d’extraction, qui peut prendre quelques minutes. Notez que les étapes d’installation peuvent varier selon le système d’exploitation, mais une fois installé, la fonctionnalité de JMeter reste constante.
     

    Étape 3 : Créer un plan de test de charge

    Les utilisateurs de JMeter peuvent commencer à créer leur plan de test de charge à partir de zéro ou sélectionner parmi divers modèles de plan de test disponibles dans le menu déroulant Fichier. Les modèles incluent SOAP WebService Test Plan, Web Test Plan basique et avancé, FTP (File Transfer Protocol) Test Plan, Functional Testing Plan, et bien d’autres. Ces modèles de test contiennent tous les éléments spécifiques, sections et champs nécessaires pour créer et construire votre plan de test de charge.

    Pour créer un plan de test, il suffit d’aller dans Fichier et de sélectionner Nouveau ou de cliquer sur le bouton Nouveau dans la barre d’outils. Il est important de noter que vous devez exécuter JMeter en mode GUI pour créer le plan de test. L’interface en ligne de commande (CLI) est utilisée pour exécuter le test de charge. Ensuite, nous parlerons de la spécification du nombre d’utilisateurs pour votre test de charge, également appelé groupe de threads.
     

    Étape 4 : Ajouter et configurer un groupe de threads dans JMeter

    Pour incorporer un groupe de threads, suivez ces étapes : Clic droit sur Plan de test, survolez Threads (Utilisateurs), puis cliquez sur Groupe de threads.

    Dans la fenêtre de dialogue du groupe de threads qui suit, vous pouvez modifier diverses propriétés du thread telles que le nombre de threads (utilisateurs), la période de montée en charge (en secondes), et le nombre de boucles (itérations de test). De plus, spécifiez des actions comme les délais, définissez les heures de début et de fin du test, et définissez les réponses aux erreurs de Sampler. Les propriétés des threads sont :

      • Nombre de threads : Représente le nombre d’utilisateurs virtuels connectant au serveur.
      • Période de montée en charge : Indique le temps que JMeter prend pour amener le nombre spécifié de threads en état d’exécution.
      • Nombre de boucles : Indique le nombre de fois que chaque thread exécute la tâche.
      • Boucles infinies : Lorsqu’activé, ignore le nombre de boucles, provoquant une boucle infinie jusqu’à arrêt manuel.
      • Retarder la création des threads jusqu’à ce que nécessaire : Retarde la création des threads jusqu’à ce qu’une valeur spécifiée (en secondes) soit atteinte.
      • Planificateur : Active les configurations du planificateur pour programmer les tests à des heures spécifiques lorsqu’activé.

    Cette étape permet une personnalisation minutieuse des paramètres du test de charge, offrant aux utilisateurs un contrôle sur la concurrence, la durée et les conditions spécifiques du test.
     

    Étape 5 : Configurer un échantillon (Sampler) dans JMeter

    Dans JMeter, les samplers permettent d’envoyer différents types de requêtes. Par exemple, il peut s’agir d’une requête HTTP (pour un site, une application ou une API), d’une requête FTP, SMTP, TCP, et bien d’autres. À partir de là, vous saisissez des détails supplémentaires tels que le protocole (HTTP/S), le nom ou l’IP du serveur, le chemin (pour une page web spécifique), et le type de requête, comme GET, POST, HEAD, PUT, etc., utilisable pour les tests de charge d’API.
     

    Étape 6 : Configurer les écouteurs (Listeners)

    Pour analyser les résultats des samplers dans JMeter, l’étape suivante consiste à configurer ce que l’on appelle des écouteurs. Dans la fenêtre du plan de test JMeter, vous pouvez choisir parmi divers écouteurs, notamment Rapport sommaire, Graphique agrégé, Arbre des résultats, Résultats en tableau, et bien d’autres, pour inspecter et analyser minutieusement vos résultats de test. En outre, vous avez la flexibilité d’ajouter plusieurs écouteurs à un plan de test JMeter. Une fois cela fait, votre plan de test est prêt, et vous pouvez procéder à l’exécution du test.
     

    Étape 7 : Enregistrement des scripts de test de charge

    Si votre objectif est de réaliser des tests de charge HTTP ou au niveau du protocole sans configuration approfondie, aucune configuration supplémentaire n’est requise. Cependant, si vous avez besoin d’un test ressemblant étroitement aux actions de vos utilisateurs, vous devrez utiliser l’enregistreur de scripts de test HTTP(S) dans JMeter.

    Dans le groupe de threads, vous devez ajouter le contrôleur d’enregistrement. Ce contrôleur vous permet de naviguer sur un site ou une application, enregistrant vos actions via des requêtes HTTP/S. Vous pouvez également inclure plusieurs contrôleurs d’enregistrement par page, ce qui vous fait gagner du temps en évitant d’ajouter manuellement chaque requête.

    L’inconvénient est que votre enregistrement se fait avec des requêtes HTTP/S et non dans un vrai navigateur du point de vue de l’utilisateur. Vous pouvez aussi enregistrer des navigateurs avec le serveur proxy JMeter, mais cela peut être un processus fastidieux et difficile. Pour une solution plus simple et intuitive, vous pouvez opter pour LoadView qui dispose de l’enregistreur EveryStep Web. L’enregistreur de LoadView offre une création de scripts par clic dans des navigateurs réels sans les configurations complexes et chronophages de JMeter.
     

    Étape 8 : Exécuter le test de charge

    Après avoir configuré tous les détails et paramètres de votre test de charge, enregistrez votre plan de test. Vous pouvez ensuite simplement cliquer sur le bouton Exécuter dans la barre d’outils pour lancer le test. N’oubliez pas d’exécuter le test en mode CLI pour obtenir de meilleurs résultats.
     

    Étape 9 : Visualiser les résultats du test de charge

    Vous verrez les résultats du test dans le tableau, mais cela peut dépendre de votre écouteur. Vos résultats incluront des métriques supplémentaires, telles que le temps (en millisecondes), le statut (indiquant les réponses valides et les erreurs), le nombre d’octets envoyés et reçus, la latence, et le temps de connexion. En examinant ces résultats, vous pouvez identifier les emplacements des erreurs ou des cas de temps de chargement lents.

    Comment réaliser un test de charge API avec JMeter

    Nous avons précédemment discuté des instructions étape par étape sur la manière de configurer un test de charge basé sur un protocole sur un site web ou une application avec JMeter. Nous allons maintenant couvrir les tests de différentes API, telles que les API SOAP et REST, avec JMeter. Les procédures d’installation et de configuration restent cohérentes avec les étapes mentionnées plus tôt. Toutefois, nous focaliserons sur les aspects fondamentaux du test API et discuterons des considérations importantes lors de la réalisation des tests API avec JMeter.
     

    Test des API REST avec JMeter

    Les API RESTful, abréviation de Representational State Transfer APIs, jouent un rôle vital dans le développement de divers services web. Contrairement aux API SOAP, REST n’est pas un protocole mais un style architectural reposant sur les URI (Uniform Resource Identifiers) et le protocole HTTP.
     

    Étape 1 : Créer un plan de test de charge

    Pour commencer, ouvrez JMeter. Vous verrez qu’une nouvelle fenêtre de plan de test va s’ouvrir. Si vous avez déjà JMeter ouvert, vous pouvez aussi sélectionner le bouton Nouveau dans la barre d’outils principale pour créer un nouveau plan de test.
     

    Étape 2 : Ajouter et configurer un groupe de threads dans JMeter

    Comme dans la section précédente, la fenêtre du groupe de threads est l’endroit où vous pouvez ajouter le nombre d’utilisateurs (threads), définir le temps de montée en charge, le nombre d’itérations de test (boucle) et modifier bien d’autres propriétés.
     

    Étape 3 : Configurer le sampler

    Ensuite, il faut ajouter le sampler. Vous pouvez choisir parmi certains samplers préconfigurés dans JMeter ou sélectionner l’un des vôtres. Pour cet exemple, nous utiliserons une option préconfigurée.

    Pour lancer ce processus, faites un clic droit sur le groupe de threads, ce qui fera apparaître un menu déroulant. Choisissez Ajouter, puis Sampler. Une liste d’options de samplers apparaîtra. Pour le test d’API, optez pour Requête HTTP, ce qui ouvrira la fenêtre de configuration où vous pourrez nommer votre test et paramétrer les paramètres de votre test REST API. Il est important de mentionner que la fenêtre de requête HTTP est divisée en sections Basique et Avancée. Pour ce test, nous nous concentrerons sur les réglages basiques. Divers champs, y compris Protocole, Nom ou IP du serveur, Numéro de port, Requête HTTP (GET/POST/HEAD/PUT/DELETE, etc.), paramètres, et plus, sont disponibles pour configuration.

    Commencez par saisir l’URL de l’API dans le champ Nom ou IP du serveur (juste le nom de domaine), ainsi que le protocole approprié, et dans le champ Chemin, ajoutez le chemin de l’API.

    S’il s’agit d’une requête GET, sélectionnez GET dans la liste Requête HTTP.

    Si vous avez certains paramètres, comme une page spécifique, vous pouvez ajouter cette partie de l’URL dans le champ Paramètres.

    Vous pouvez également l’inclure dans le champ Chemin, cependant, en l’ajoutant au champ Paramètres, vous disposez d’options supplémentaires comme Encode URL ?, Type de contenu, et Inclure Equals ?

    Pour certaines requêtes, il est nécessaire d’inclure des en-têtes de requête. Pour ce faire, allez dans la requête HTTP dans la fenêtre du plan de test. Un clic droit fera apparaître un menu déroulant ; sélectionnez Ajouter, puis Élément de configuration. Cela ouvre les options disponibles. Dans ce cas, optez pour Gestionnaire d’en-têtes HTTP. La fenêtre du gestionnaire d’en-têtes HTTP vous permettra d’entrer vos en-têtes API. Après avoir configuré vos paramètres, passez à l’étape suivante.
     

    Étape 4 : Ajouter les écouteurs

    Pour inclure des écouteurs, faites simplement un clic droit sur le groupe de threads, choisissez Ajouter, puis Écouteur. Cela fera apparaître un menu déroulant offrant plus de 15 options. Les choix populaires incluent Arbre des résultats et Résultats en tableau. Il est important de noter que les écouteurs fournissant une représentation graphique, comme l’Arbre des résultats, peuvent consommer plus de mémoire et de CPU. Après avoir ajouté vos écouteurs, enregistrez votre plan de test.
     

    Étape 5 : Exécuter le test et visualiser les résultats

    Une fois que vous avez configuré et enregistré les détails et paramètres de votre test de charge, lancez le test en cliquant sur le bouton Exécuter dans la barre d’outils. La fenêtre affichera les résultats de vos samplers, présentant divers détails, données et métriques — telles que la latence, les codes de réponse, le temps de connexion, etc. — concernant votre test REST API.
     

    Test des API SOAP avec JMeter

    SOAP (Simple Object Access Protocol) se distingue d’une API REST car il fonctionne sous son propre protocole. Lors des tests de charge d’API SOAP, des considérations spécifiques apparaissent, notamment la sécurité et la conformité, les exigences en bande passante (les API SOAP requièrent généralement plus de ressources), et les aspects fonctionnels comme la logique de nouvelle tentative, absente des API REST.
     

    Étape 1 : Créer un plan de test de charge

    JMeter propose une gamme de modèles de plan de test accessibles via le menu ou l’icône Modèles dans la barre d’outils principale. Une des options disponibles est « Construction d’un plan de test SOAP WebService ». Choisir cette option générera et ouvrira le plan de test correspondant. Comme il s’agit d’un modèle, certains champs contiendront des valeurs de remplacement, que vous devrez remplacer par les données et informations pertinentes.
     

    Étape 2 : Saisie des données

    Comme évoqué pour la configuration des API REST, vous devrez saisir le nombre d’utilisateurs (threads), la période de montée en charge et les boucles (itérations de test) pour les tests d’API SOAP.

    Dans un sous-groupe du groupe de threads principal, vous pouvez accéder aux paramètres de requête HTTP, similaires à la configuration REST abordée précédemment. Cependant, la disposition de cette section diffère, affichant par défaut le corps de la requête SOAP API. Cette section comprend aussi des sous-sections pour le gestionnaire d’en-têtes HTTP et les assertions de réponse. Comme pour la configuration REST, vous pouvez incorporer des éléments de configuration supplémentaires, comme le gestionnaire d’autorisation HTTP, si des détails d’autorisation spécifiques doivent être inclus.
     

    Étape 3 : Ajouter un sampler de requête HTTP

    Pour un test de charge d’API SOAP, vous voulez ajouter le sampler de requête HTTP. Dans cette fenêtre, vous devrez saisir les détails pertinents, incluant le nom ou l’IP du serveur, le chemin, la requête HTTP, le numéro de port et les données du corps de la requête SOAP.
     

    Étape 4 : Ajouter les écouteurs

    Une fois que vous avez configuré le plan de test, vous devez ajouter vos écouteurs, qui afficheront vos résultats de test. Là encore, vous pouvez ajouter autant d’écouteurs que souhaité et approprié pour le test de charge de l’API SOAP.
     

    Étape 5 : Exécuter votre test

    Une fois la configuration et les paramètres du plan de test définis, vous pouvez enfin exécuter votre test de charge d’API SOAP et examiner les résultats une fois celui-ci terminé.

    Conclusion

    À présent, vous avez appris ce qu’est JMeter, comment réaliser un test de charge avec JMeter, et comment effectuer des tests de charge d’API avec JMeter. Comme vous l’avez vu, la configuration des tests de charge avec JMeter comporte de nombreuses étapes et options de configuration, ce qui signifie beaucoup de temps passé à préparer les tests, plutôt qu’à les exécuter. Même si JMeter est une solution open source et gratuite, vous pourriez avoir besoin de chercher d’autres outils de test de charge offrant de meilleures fonctionnalités et correspondant à vos besoins métier.

    LoadView : la meilleure alternative à JMeter

    LoadView se distingue comme l’une des meilleures solutions payantes de test de performance disponibles aujourd’hui, offrant une gamme de fonctionnalités. Celles-ci incluent un enregistreur de scripts par point et clic, l’accès à un réseau global de serveurs injecteurs de charge, et la capacité à configurer divers scénarios de courbes de charge pour une flexibilité accrue des tests. Contrairement à JMeter, LoadView ne nécessite aucune infrastructure supplémentaire ni considération particulière, car tout est géré de manière transparente. À la différence de JMeter, limité aux tests de charge au niveau protocolaire, LoadView utilise de vrais navigateurs, vous permettant d’évaluer la performance réelle des sites, applications et API critiques. De plus, LoadView offre plusieurs options, telles que la mise en liste blanche des IP de proxy statiques ou l’utilisation d’un agent sur site, permettant de tester des applications derrière votre pare-feu et offrant une plus grande flexibilité pour les tests de performance.

    LoadView fournit des rapports et tableaux de bord performants et conviviaux, offrant des insights clairs sur les facteurs conduisant à des performances sous-optimales. De plus, il inclut une vidéo de référence pour les tests de pages web et applications web, permettant une comparaison directe avec les rapports pour visualiser la perspective utilisateur. LoadView offre des plans flexibles mensuels et annuels, accompagnés d’un support 24×7 pour tous les clients, indépendamment de leur plan choisi, ce qui le distingue de certains autres outils sur le marché.

    Faites passer vos tests de charge
    Au niveau supérieur

    Découvrez des fonctionnalités inégalées avec une extensibilité illimitée. Pas de carte de crédit, pas de contrat.