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é globale. Les tests de charge sont essentiels pour évaluer les performances d’une application web. Ce type de test est un élément vital du cycle de vie du développement logiciel et applicatif, notamment 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 conditions de trafic de pointe ou soutenu, il est essentiel d’employer des outils de test de performance. Apache JMeter est un choix populaire à cet effet, et si vous débutez dans les tests de performance, vous vous demandez peut-être ce qu’est JMeter et comment JMeter fonctionne. 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 pointe, voire de trouver son point de rupture. C’est la pratique de simuler une utilisation réelle, ou charge, sur un logiciel, site, application web, API ou système pour analyser et 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 de test de charge et améliorer vos performances numériques. Il existe une multitude d’outils et de plateformes sur le marché aujourd’hui, avec une variété de fonctionnalités. Voici plusieurs outils de test de charge tels que :

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

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

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

Apache JMeter, également connu sous le nom de JMeter, est un logiciel open source largement utilisé conçu comme une application 100% Java pure pour effectuer des tests de charge du comportement fonctionnel et évaluer les performances. C’est un outil privilégié parmi les développeurs et les équipes de développement logiciel pour les tests de performance en raison de sa documentation extensive, son fort support communautaire et ses meilleures pratiques établies. De plus, étant gratuit et open source, c’est un choix économique, mais comme il est 100% Java, votre équipe pourrait devoir consacrer plus de temps et de ressources pour initialiser les processus de test.

JMeter supporte une gamme de protocoles, incluant HTTP, HTTPS, FTP, et plus, le rendant 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 la simulation d’interactions utilisateurs, la surveillance de la performance serveur et l’analyse des temps de réponse.

Le test de charge JMeter est conçu pour effectuer des tests de charge sur le comportement fonctionnel et mesurer ses performances. Vous pouvez utiliser JMeter pour analyser et mesurer la performance d’applications web ou de services. 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 de performance, fournissant des informations précieuses sur les domaines nécessitant des améliorations.

Pourquoi utiliser JMeter ?

  • Open source : JMeter est entièrement gratuit, et les développeurs peuvent utiliser le code source.
  • Indépendant de la plateforme : JMeter est 100 % Java et peut fonctionner sur plusieurs plateformes.
  • Support multi-protocoles : JMeter prend en charge les tests d’applications web et la performance des services de bases de données. Il supporte tous les protocoles de base tels que HTTP, JDBC, LDAP, SOAP, JMS et FTP.
  • Enregistrement et lecture : JMeter vous permet d’enregistrer l’activité utilisateur sur un navigateur à simuler puis de lire cet enregistrement.
  • Rapports personnalisables : Visualisez vos résultats de test sous différents formats tels que graphiques, tableaux, ou arbres et fichiers logs.
  • Support communautaire : Il existe une large communauté offrant 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.

Avantages du test de charge JMeter

JMeter est un outil fantastique pour les tests de charge qui offre de nombreux avantages le rendant populaire chez les testeurs. Tout d’abord, c’est un logiciel entièrement 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, vous donnant une image claire de la façon dont votre application fonctionne sous différents types de charges.

Un des meilleurs atouts de JMeter est sa scalabilité. Que vous réalisiez de petits tests ou que vous simuliez un trafic à grande échelle, il peut tout gérer sans difficulté. N’oublions pas non plus ses fonctionnalités détaillées de rapport et d’analyse. Ces outils vous aident à identifier précocement les problèmes de performance, rendant l’optimisation de votre application beaucoup plus facile et assurant son bon fonctionnement.

Un autre point fort de JMeter est sa convivialité ! Vous n’avez pas besoin d’être un expert en programmation pour créer des scénarios de test complexes, car JMeter reste simple et intuitif. De plus, ses fonctionnalités intégrées de reporting et de visualisation facilitent l’analyse des résultats et l’identification des goulets d’étranglement de performance. Dans l’ensemble, JMeter est un outil fiable et facile à utiliser qui aide à garantir que vos applications peuvent gérer toutes les charges !

    Comment réaliser un test de charge JMeter

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

    Étape 1 : Vérifier la compatibilité du 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. Confirmez que votre système d’exploitation est compatible avec JMeter. Ce dernier est conçu pour fonctionner sur divers systèmes d’exploitation, 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 une performance optimale 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 répond aux exigences, téléchargez la dernière version de JMeter—en choisissant entre les fichiers binaires ou les fichiers source 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 source offrent une flexibilité pour la configuration et la compilation manuelles par les développeurs ou équipes. En général, les versions binaires sont préférées pour une installation facile. Différents types de fichiers sont disponibles, tels que .zip et .tgz.

    Une fois votre version choisie, téléchargez-la sur votre système. Vous pouvez alors 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 votre système d’exploitation, mais une fois installé, les fonctionnalités de JMeter restent les mêmes.
     

    É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 divers modèles de plans de test disponibles dans le menu Fichier. Les modèles incluent SOAP WebService Test Plan, plan de test web basique et avancé, plan de test FTP, plan de test fonctionnel, et bien d’autres. Ces modèles incluent tous les éléments, sections et champs nécessaires que vous utiliserez pour créer et construire votre plan de test de charge.

    Pour créer un plan de test, il suffit de naviguer vers 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 ajouter un groupe de threads, procédez ainsi : clic droit sur Plan de Test, survolez Threads (Utilisateurs), puis cliquez sur Groupe de Threads.

    Dans la boîte de dialogue Groupe de Threads qui s’affiche, vous pouvez modifier différentes propriétés des threads comme 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, vous pouvez spécifier des actions comme des délais, fixer les heures de début et d’arrêt du test, et définir des réponses aux erreurs de Samplers. Les propriétés des threads sont :

      • Nombre de threads : Représente le nombre d’utilisateurs virtuels se connectant au serveur.
      • Période de montée en charge : Temps que JMeter met à mettre le nombre spécifié de threads en état d’exécution.
      • Nombre de boucles : Indique combien de fois chaque thread exécute la tâche.
      • Boucle infinie : Lorsqu’activée, ignore le nombre de boucles, causant une boucle infinie jusqu’à arrêt manuel.
      • Délai de création des threads jusqu’à besoin : Retarde la création des threads jusqu’à ce qu’une valeur spécifiée (en secondes) soit atteinte.
      • Planificateur : Permet de configurer un planificateur pour exécuter les tests à des horaires précis quand activé.

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

    Étape 5 : Configurer un échantillonneur dans JMeter

    Dans JMeter, les Samplers permettent d’envoyer différents types de requêtes. Par exemple, cela peut être une requête HTTP (pour un site web, une application ou une API), une requête FTP, SMTP, TCP, entre autres. Ici, 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., qui peut être utilisé pour le test de charge API.
     

    Étape 6 : Configurer les écouteurs

    Pour analyser les résultats des Samplers dans JMeter, l’étape suivante consiste à configurer ce que l’on appelle les Écouteurs. Dans la fenêtre du plan de test JMeter, vous pouvez choisir parmi différents Écouteurs, tels que Rapport résumé, Graphique agrégé, Arbre des résultats, Résultats en tableau, et beaucoup d’autres, pour inspecter et analyser minutieusement les résultats de votre test. De plus, vous pouvez ajouter plusieurs Écouteurs à un plan de test JMeter. Une fois ceci fait, votre plan de test est prêt et vous pouvez procéder à l’exécution du test.
     

    Étape 7 : Enregistrer les scripts de test de charge

    Si votre objectif est de réaliser des tests de charge HTTP ou au niveau protocole basiques sans configuration étendue, aucun paramétrage supplémentaire n’est nécessaire. Cependant, si vous avez besoin d’un test qui ressemble é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.

    Le désavantage est que votre enregistrement se fait avec des requêtes HTTP/S et non dans un véritable navigateur du point de vue utilisateur. Vous pouvez également enregistrer des navigateurs en utilisant le serveur proxy JMeter, mais cela peut être un processus fastidieux et compliqué. Si vous cherchez une solution plus simple et intuitive, vous pouvez opter pour LoadView qui dispose de EveryStep Web Recorder. L’enregistreur de LoadView offre une création de scripts par pointage et clic via de vrais navigateurs, sans la mise en place complexe et chronophage de JMeter.
     

    Étape 8 : Exécuter et lancer 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. Ensuite, vous pouvez simplement sélectionner le bouton Exécuter dans la barre d’outils et votre test commencera. 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 dans un tableau, selon l’écouteur choisi. Vos résultats incluront des métriques supplémentaires, telles que le temps (en millisecondes), le statut (montrant les réponses valides et erreurs), les octets reçus et envoyés, la latence et le temps de connexion. En examinant ces résultats, vous pouvez localiser les erreurs ou les instances de temps de chargement lents.

    Comment réaliser un test de charge API avec JMeter

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

    Test d’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 des URI (Uniform Resource Identifiers) et le protocole HTTP.
     

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

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

    É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 (nombre de boucles) et modifier bien d’autres propriétés.
     

    Étape 3 : Configurer un échantillonneur

    Ensuite, nous devons ajouter un Sampler. Vous pouvez choisir parmi certains Samplers préconfigurés dans JMeter ou sélectionner un de ceux que vous avez créés. Pour cet exemple, nous utiliserons une option préconfigurée.

    Pour initier ce processus, faites un clic droit sur le groupe de threads, ce qui déclenche une fenêtre déroulante. 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 configurer les paramètres pour votre test d’API REST. Il est utile de préciser que la fenêtre Requête HTTP est divisée en sections Basique et Avancée. Pour ce test, nous allons nous concentrer sur les paramètres 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 à la configuration.

    Pour commencer, saisissez l’URL de l’API dans le champ Nom ou IP du serveur (juste le nom de domaine), ainsi que le protocole approprié. Dans le champ Chemin, ajoutez le chemin d’accès 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, mais en l’ajoutant dans les Paramètres, vous avez des options supplémentaires de champ telles que Encoder l’URL ?, Type de contenu, et Inclure égale ?

    Pour certaines requêtes, il est nécessaire d’inclure les en-têtes de requête. Pour ce faire, allez dans Requête HTTP dans la fenêtre du plan de test. Un clic droit affichera un menu déroulant ; sélectionnez Ajouter, puis Élément de configuration. Cette action ouvre les options disponibles. Ici, choisissez Gestionnaire d’en-têtes HTTP. La fenêtre du gestionnaire d’en-têtes HTTP vous permet de saisir vos en-têtes API. Après avoir configuré vos paramètres, passez à l’étape suivante.
     

    Étape 4 : Ajouter des écouteurs

    Pour inclure des écouteurs, faites simplement un clic droit sur le groupe de threads, choisissez Ajouter puis Écouteur. Cela affiche 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 offrant une représentation graphique, comme Arbre des résultats, peuvent consommer plus de mémoire et 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 vos détails et paramètres de test configurés et enregistrés, lancez le test en cliquant sur le bouton Exécuter dans la barre d’outils. La fenêtre affichera vos résultats de Sampler, présentant divers détails, données et métriques, tels que latence, codes de réponse, temps de connexion, etc., concernant votre test d’API REST.
     

    Test d’API SOAP avec JMeter

    Le protocole SOAP (Simple Object Access Protocol) se distingue des API REST car il opère sous son propre protocole. Lors des tests de charge des API SOAP, des considérations spécifiques apparaissent, y compris la sécurité et la conformité, les besoins en bande passante (les API SOAP demandent généralement plus de ressources), et des aspects fonctionnels comme la logique de nouvelle tentative, absente des API REST.
     

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

    JMeter offre une gamme de modèles de plans de test accessibles via le menu ou l’icône de modèles dans la barre d’outils principale. L’une des options disponibles est « Construire un plan de test WebService SOAP ». 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 substitution que vous devrez remplacer par les données et informations pertinentes.
     

    Étape 2 : Saisir des données

    Comme pour la configuration des API REST, vous devrez saisir le nombre d’utilisateurs (threads), la période de montée en charge et le nombre de boucles (itérations de test) pour le test 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 API REST discutée précédemment. Toutefois, la disposition diffère, affichant par défaut le corps de la requête API SOAP. 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 API REST, vous pouvez ajouter des éléments de configuration supplémentaires, tels que le gestionnaire d’autorisation HTTP, si des détails d’autorisation spécifiques doivent être inclus.
     

    Étape 3 : Ajouter un échantillonneur de requête HTTP

    Pour un test de charge API SOAP, vous devez ajouter un échantillonneur de requête HTTP. Dans cette fenêtre, vous devrez saisir les détails pertinents, y compris 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 des écouteurs

    Une fois le plan de test configuré, vous devez ajouter vos écouteurs, qui afficheront les résultats de votre test. Vous pouvez ajouter autant d’écouteurs que vous le souhaitez et selon ce qui est approprié pour le test de charge API SOAP.
     

    Étape 5 : Exécuter votre test

    Une fois la configuration et les paramètres de votre plan de test terminés, vous pouvez enfin lancer votre test de charge API SOAP et examiner les résultats une fois le test terminé.

    Conclusion

    Vous devriez maintenant avoir appris ce qu’est JMeter, comment réaliser des tests de charge avec JMeter, et comment effectuer des tests de charge pour les API avec JMeter. Comme vous pouvez le constater, la configuration des tests de charge avec JMeter comporte de nombreuses étapes et options de configuration, ce qui signifie beaucoup de temps passé à configurer les tests plutôt qu’à les exécuter. Bien que JMeter soit une solution gratuite et open source, vous pourriez avoir besoin de rechercher d’autres outils de test de charge offrant de meilleures fonctionnalités et répondant à 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 script par pointage et clic, l’accès à un réseau mondial de serveurs d’injection de charge, et la possibilité de 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 car tout est géré de manière transparente. À la différence de JMeter, qui est 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 propose plusieurs options, comme la mise en liste blanche des IPs de proxy statiques ou l’utilisation d’un agent sur site, permettant des tests d’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 utilisateurs conviviaux, offrant des insights clairs sur les facteurs contribuant à une performance sous-optimale. 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 de l’utilisateur. LoadView propose des plans flexibles mensuels et annuels, accompagnés d’un support 24h/24 et 7j/7 pour tous les clients, quel que soit leur plan, ce qui le distingue de certains autres outils du marché.

    Passez votre test de charge au
    niveau supérieur

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