Didacticiel de test de charge JMeter
Vue d’ensemble des tests de charge JMeter
Chaque application web a une capacité de charge maximale, et son dépassement peut entraîner des ralentissements, des erreurs ou une inefficacité globale. Les tests de charge sont cruciaux pour évaluer les performances d’une application web. Ce type de test est un élément essentiel du cycle de vie du développement de logiciels et d’applications, en particulier lorsqu’il s’agit d’applications Web, de sites ou d’API qui sont censés gérer un trafic utilisateur important. Pour s’assurer que vos applications peuvent fonctionner dans des conditions de pointe ou de trafic élevé soutenu, il est essentiel d’utiliser des outils de test de performance. Apache JMeter est un choix populaire à cet effet, et si vous débutez dans les tests de performances, vous vous demandez peut-être ce qu’est JMeter ? Et comment fonctionne JMeter ? Nous allons examiner JMeter et comment l’utiliser pour les tests de performance.
Qu’est-ce que le test de charge?
Le test de charge est un type de test de performance visant à déterminer le comportement de votre application web dans des conditions de charge normales et de pointe, ou même à trouver le point de rupture. Il s’agit de la pratique consistant à simuler l’utilisation ou la charge réelle d’un logiciel, d’un site Web, d’une application Web, d’une API ou d’un système afin d’analyser et d’identifier des facteurs tels que la réactivité, la dégradation et l’évolutivité.
Outils pour les tests de charge
Les outils de test de charge sont extrêmement importants pour rationaliser vos besoins en matière de test de charge et améliorer vos performances numériques. Il n’y a pas de fin à la quantité et la variété des outils et des plates-formes sur le marché aujourd’hui, avec une variété de fonctionnalités. Il existe de nombreux outils de test de charge tels que :
-
- LoadView
- Apache JMeter
- WebLOAD (webload)
- LoadRunner
- Tricentis NeoLoad
Pour ce guide, nous allons examiner les tests de charge JMeter. Nous répondrons à quelques questions telles que : qu’est-ce que JMeter, comment faire des tests de charge JMeter et comment utiliser JMeter pour les tests de performance des API.
Qu’est-ce que JMeter?
Apache JMeter, également connu sous le nom de JMeter, est un logiciel open source largement utilisé conçu comme une application Java 100% pure pour effectuer des tests de charge du comportement fonctionnel et évaluer les performances. Il s’agit d’un outil privilégié par les développeurs et les équipes de développement de logiciels pour les tests de performance en raison de sa documentation complète, du soutien solide de la communauté et des meilleures pratiques établies. De plus, le fait d’être gratuit et open-source en fait un choix rentable, mais comme il s’agit à 100 % de Java, il peut falloir à votre équipe du temps et des ressources supplémentaires pour lancer des processus de test.
Les tests de charge JMeter sont conçus pour effectuer des tests de charge sur le comportement fonctionnel et mesurer ses performances. Vous pouvez utiliser JMeter pour analyser et mesurer les performances d’applications ou de 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 goulots d’étranglement des performances, ce qui fournit des informations précieuses sur les domaines dans lesquels des améliorations de l’application sont nécessaires.
Pourquoi utiliser JMeter ?
- Libre: JMeter est entièrement gratuit, et les développeurs peuvent utiliser le code source.
- Indépendant de la plate-forme : JMeter est 100% et peut être exécuté sur plusieurs plates-formes.
- Prise en charge du multiprotocole : JMeter prend en charge à la fois les tests d’applications Web et les performances des services de base de données. Il prend en charge tous les protocoles de base tels que HTTP, JDBC, LDAP, SOAP, JMS et FTP.
- Enregistrement et lecture : JMeter vous permet d’enregistrer l’activité de l’utilisateur sur un navigateur à simuler, puis de lire l’enregistrement.
- Rapports personnalisables : Visualisez les résultats de vos tests dans différents formats tels que des graphiques, des tableaux ou des fichiers d’arborescence et de journaux.
- Soutien de la communauté : Il existe une grande communauté avec de l’aide, des conseils et des tutoriels.
Comment effectuer un test de charge JMeter
Examinons quelques-unes des étapes impliquées dans l’utilisation de JMeter pour les tests de charge et la configuration d’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 installé Java 8 ou une version supérieure sur votre système. Vérifiez que votre système d’exploitation est compatible avec JMeter. JMeter est conçu pour fonctionner sur divers systèmes d’exploitation, notamment 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 configuration fluide et des performances optimales lors des tests de charge.
Étape 2 : Téléchargement et installation de JMeter pour votre système
Après vous être assuré que votre système répond à toutes les exigences nécessaires, procédez au téléchargement de la dernière version de JMeter, en choisissant entre les fichiers binaires ou les fichiers sources en fonction de 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 une flexibilité pour la configuration et la compilation manuelles par les développeurs ou les équipes. En règle générale, les versions binaires sont préférées pour faciliter l’installation. Différents types de téléchargement de fichiers, tels que .zip et .tgz, sont disponibles.
Une fois que vous avez sélectionné 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 ultérieur. Commencez le processus d’extraction, qui peut prendre quelques minutes. Notez que les étapes d’installation peuvent varier en fonction de votre système d’exploitation, mais une fois installé, les fonctionnalités de JMeter restent cohérentes.
É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 également sélectionner parmi différents modèles de plan de test situés à partir du menu de drop-down du fichier. Les modèles incluent le plan de test WebService SOAP, le plan de test Web de base et avancé, le plan de test FTP (File Transfer Protocol), le plan de test fonctionnel et bien d’autres. Ces modèles de test comprendront tous les éléments spécifiques, 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 vous suffit d’accéder à Fichier et de sélectionner Nouveau ou de sélectionner 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. Le CLI, ou interface de ligne de commande, est utilisé pour exécuter le test de charge. Ensuite, nous allons parler de la spécification du nombre d’utilisateurs pour votre test de charge, également connu sous le nom de groupe de threads.
Étape 4 : Ajouter et configurer un groupe de threads dans JMeter
Pour incorporer un groupe de threads, procédez comme suit : cliquez avec le bouton droit sur Plan de test, passez la souris sur Threads (utilisateurs), puis cliquez sur Groupe de threads.
Dans la boîte de dialogue Groupe de threads qui s’affiche, vous pouvez modifier diverses propriétés de thread, telles que le nombre de threads (utilisateurs), la période de montée en puissance (en secondes) et le nombre de boucles (itérations de test). En outre, spécifiez des actions telles que des retards, définissez des heures de début et de fin de test et définissez des réponses aux erreurs de l’échantillonneur. Les propriétés du thread sont les suivantes :
-
- Nombre de threads : représente le nombre d’utilisateurs virtuels qui se connectent au serveur.
- Période de montée en puissance : indique le temps nécessaire à JMeter pour faire passer le nombre spécifié de threads à un état en cours d’exécution.
- Nombre de boucles : indique le nombre de fois que chaque thread exécute la tâche.
- Nombre de boucles infini : lorsqu’il est activé, il ne tient pas compte du nombre de boucles, ce qui provoque une boucle infinie jusqu’à ce qu’il soit arrêté manuellement.
- Retarder la création du thread jusqu’à ce que cela soit nécessaire : retarde la création du thread jusqu’à ce qu’une valeur spécifiée (en secondes) soit atteinte.
- Planificateur : active les configurations du planificateur pour planifier des tests à des moments spécifiques lorsqu’il est activé.
Cette étape permet une personnalisation méticuleuse des paramètres de test de charge, offrant aux utilisateurs un contrôle sur la concurrence, la durée et les conditions de test spécifiques.
Étape 5 : Configurer l’exemple dans JMeter
Dans JMeter, les échantillonneurs permettent à JMeter d’envoyer différents types de requêtes. Il peut s’agir, par exemple, d’une requête HTTP (pour un site Web, une application ou une API), d’une requête FTP, d’une requête SMTP, d’une requête TCP et bien d’autres. À partir de là, vous entrez des détails supplémentaires tels que le protocole (HTTP/S), le nom du serveur ou l’adresse IP, le chemin d’accès (pour une page Web spécifique) et le type de requête, tel que GET, POST, HEAD, PUT, etc., qui peut être utilisé pour les tests de charge de l’API.
Étape 6 : Configurer les écouteurs
Pour analyser les résultats de l’échantillonneur dans JMeter, l’étape suivante consiste à configurer ce que l’on appelle des écouteurs. Dans la fenêtre Plan de test JMeter, vous pouvez choisir parmi différents écouteurs, y compris Rapport récapitulatif, Graphique agrégé, Afficher l’arborescence des résultats, Afficher les résultats dans le tableau et bien d’autres, pour inspecter et analyser en profondeur les résultats de vos tests. De plus, vous avez la possibilité d’ajouter plusieurs écouteurs à un plan de test JMeter. Une fois que c’est 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 d’effectuer des tests de charge HTTP ou de base au niveau du protocole sans configuration approfondie, aucune configuration supplémentaire n’est requise. Toutefois, si vous avez besoin d’un test qui ressemble beaucoup aux actions de votre utilisateur, vous devrez utiliser l’enregistreur de script 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, en enregistrant vos actions via des requêtes HTTP/S. Vous pouvez également inclure plusieurs contrôleurs d’enregistrement par page, ce qui vous permet de gagner du temps et de ne pas avoir à ajouter manuellement chaque demande.
L’inconvénient est que votre enregistrement se fait avec des requêtes HTTP/S et qu’il n’enregistre pas dans un vrai navigateur du point de vue de l’utilisateur. Vous pouvez également enregistrer des navigateurs à l’aide du serveur proxy JMeter, mais cela peut être un processus fastidieux et difficile. Si vous recherchez une solution plus simple et intuitive, vous pouvez choisir d’utiliser LoadView qui dispose de l’enregistreur Web EveryStep. L’enregistreur de LoadView fournit des scripts pointer-cliquer à l’aide de vrais navigateurs sans la configuration complexe et chronophage de JMeter.
Étape 8 : Exécuter et exécuter le test de charge
Une fois que vous avez 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 : Afficher les résultats des tests de charge
Vous verrez les résultats du test dans le tableau, mais cela peut dépendre de votre auditeur. Vos résultats incluent des mesures supplémentaires, telles que le temps (en millisecondes), l’état (affiche les réponses et les erreurs valides), les octets et les octets envoyés, 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 effectuer des tests de charge d’API avec JMeter
Précédemment, nous avons discuté des instructions étape par étape sur la façon de configurer un test de charge basé sur un protocole sur un site Web ou une application avec JMeter. Nous allons maintenant aborder le test 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 précédemment. Cependant, nous nous concentrerons sur les aspects fondamentaux des tests d’API et discuterons des considérations importantes lors de la réalisation de tests d’API à l’aide de JMeter.
Test de l’API REST avec JMeter
Les API RESTful, abréviation de Representational State Transfer APIs, jouent un rôle essentiel dans le développement de divers services Web. Contrairement aux API SOAP, REST n’est pas un protocole mais un style architectural s’appuyant 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 Plan de test s’ouvrira. 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 nouveau plan de test.
Étape 2 : Ajouter et configurer un groupe de threads dans JMeter
De la même manière que dans la section précédente, la fenêtre Groupe de threads vous permet d’ajouter le nombre d’utilisateurs (threads), de définir le temps de montée en puissance et le nombre d’itérations de test (nombre de boucles) et de modifier de nombreuses autres propriétés.
Étape 3 : Configurer l’échantillonneur
Ensuite, nous devons ajouter l’échantillonneur. Vous pouvez choisir parmi certains samplers préconfigurés dans JMeter ou choisir parmi l’un des vôtres. Pour cet exemple, nous allons utiliser une option préconfigurée.
Pour lancer ce processus, cliquez avec le bouton droit de la souris sur le groupe de threads, ce qui déclenche une fenêtre déroulante. Choisissez Ajouter, puis Échantillonneur. Une liste d’options de l’échantillonneur s’affiche. Pour les tests d’API, optez pour HTTP Request, en ouvrant la fenêtre de configuration dans laquelle vous pouvez nommer votre test et configurer les paramètres de votre test d’API REST. Il convient de mentionner que la fenêtre de requête HTTP est divisée en sections de base et avancées. Pour ce test, nous allons nous concentrer sur les paramètres de base. Divers champs, notamment le protocole, le nom du serveur ou l’adresse IP, le numéro de port, la requête HTTP (GET/POST/HEAD/PUT/DELETE, etc.), les paramètres, etc., sont disponibles pour la configuration.
Pour commencer, entrez l’URL de l’API dans le champ Nom du serveur ou IP (uniquement le nom de domaine), ainsi que le protocole approprié, et 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 des requêtes 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 d’accès, mais en l’ajoutant au champ Paramètres, vous disposez d’options de champ supplémentaires, telles que Codage d’URL ?, Type de contenu et Inclure égal à ?
Pour certaines requêtes, il est nécessaire d’inclure des en-têtes de requête. Pour ce faire, accédez à la requête HTTP dans la fenêtre Plan de test. Cliquez avec le bouton droit de la souris pour afficher un menu déroulant ; sélectionnez Ajouter, puis Élément de configuration. Cette action ouvre les options disponibles. Dans ce cas, optez pour le gestionnaire d’en-têtes HTTP. La fenêtre du gestionnaire d’en-têtes HTTP qui s’ensuit vous permet de saisir vos en-têtes d’API. Après avoir configuré vos paramètres, passez à l’étape suivante.
Étape 4 : Ajouter des écouteurs
Pour inclure des écouteurs, il suffit de cliquer avec le bouton droit de la souris sur le groupe de threads, de choisir Ajouter, puis Écouteur. Cette action s’ouvre dans un menu déroulant proposant plus de 15 options parmi lesquelles choisir. Les choix les plus courants incluent Afficher l’arborescence des résultats et Afficher les résultats dans le tableau. Il est important de noter que les écouteurs offrant une représentation graphique, comme l’arborescence des résultats d’affichage, peuvent consommer plus de mémoire et de processeur. Après avoir ajouté vos écouteurs, enregistrez votre plan de test.
Étape 5 : Exécutez le test et affichez les résultats
Une fois que vous avez configuré et enregistré les détails et les 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 votre échantillonneur, présentant divers détails, données et mesures, tels que la latence, les codes de réponse, le temps de connexion, etc., relatifs à votre test d’API REST.
Test de l’API SOAP avec JMeter
SOAP (Simple Object Access Protocol) se distingue d’une API REST car il fonctionne sous son propre protocole. Lors du test de charge des API SOAP, des considérations spécifiques se posent, notamment la sécurité et la conformité, les exigences en matière de bande passante (les API SOAP nécessitent généralement plus de ressources) et les aspects fonctionnels tels que la logique de nouvelle tentative, qui est absente dans les API REST.
Étape 1 : Créer un plan de test de charge
JMeter propose une gamme de modèles de plans de test accessibles via le menu ou l’icône Modèles dans la barre d’outils principale. L’une des options disponibles est « Création d’un plan de test de service Web SOAP ». Le choix de cette option générera et ouvrira le plan de test correspondant. Comme il s’agit d’un modèle, certains champs contiennent des valeurs d’espace réservé qui vous obligent à saisir les données et informations pertinentes.
Étape 2 : Saisie des données
Comme nous l’avons vu dans la configuration des API REST, vous devez entrer le nombre d’utilisateurs (threads), la période de montée en puissance et les boucles (itérations de test) pour les tests de l’API SOAP.
Au sein d’un sous-groupe du groupe de threads principal, vous pouvez accéder aux paramètres de requête HTTP, comme dans la configuration de l’API REST que nous avons abordée précédemment. Toutefois, la disposition de cette section diffère, affichant par défaut le corps de la demande d’API SOAP. Cette section comprend également des sous-sections pour le gestionnaire d’en-têtes HTTP et les assertions de réponse. À l’instar de la configuration de l’API REST, vous pouvez incorporer des éléments de configuration supplémentaires, tels que le gestionnaire d’autorisations HTTP, si des détails d’autorisation spécifiques doivent être inclus.
Étape 3 : Ajouter un échantillonneur de requêtes HTTP
Pour un test de charge de l’API SOAP, vous devez ajouter l’échantillonneur de requêtes HTTP. Dans cette fenêtre, vous devez saisir les détails pertinents, notamment le nom ou l’adresse IP du serveur, le chemin d’accès, la requête HTTP, le numéro de port et les données corporelles de la requête SOAP.
Étape 4 : Ajouter des écouteurs
Une fois que vous avez configuré le plan de test, vous devez ajouter vos écouteurs, qui afficheront les résultats de vos tests. Encore une fois, vous pouvez ajouter autant d’auditeurs que vous le souhaitez et, le cas échéant, pour le test de charge SOAP API.
Étape 5 : Exécutez votre test
Une fois que la configuration et les paramètres de votre plan de test ont été définis, vous pouvez enfin exécuter votre test de charge de l’API SOAP et examiner les résultats une fois terminé.
conclusion
À présent, vous devriez avoir appris ce qu’est JMeter, comment effectuer des tests de charge JMeter et comment effectuer des tests de charge pour les API avec JMeter. Comme vous pouvez le voir, la mise en place de tests de charge avec JMeter comporte de nombreuses étapes et options de configuration différentes, ce qui équivaut à beaucoup de temps passé à configurer les tests, plutôt qu’à les exécuter. Même si JMeter est une solution open source et gratuite, vous devrez peut-être rechercher d’autres outils de test de charge qui offrent de meilleures fonctionnalités et répondent aux besoins de votre entreprise.
LoadView : la meilleure alternative à JMeter
LoadView se distingue comme l’une des meilleures solutions de test de performance payantes disponibles aujourd’hui, offrant un éventail de fonctionnalités. Il s’agit notamment d’un enregistreur de script pointer-cliquer, d’un accès à un réseau mondial de serveurs injecteurs de charge et de la possibilité de configurer divers scénarios de courbe de charge pour une plus grande flexibilité des tests. Contrairement à JMeter, LoadView ne nécessite aucune infrastructure ou considération supplémentaire, car tout est géré de manière transparente. Contrairement à JMeter, qui se limite aux tests de charge au niveau du protocole, LoadView utilise de vrais navigateurs, ce qui vous permet d’évaluer les performances réelles des sites, des applications et des API critiques. En outre, LoadView offre plusieurs options, telles que la mise en liste blanche d’adresses IP proxy statiques ou l’utilisation d’un agent sur site, ce qui permet d’effectuer des tests sur les applications derrière votre pare-feu et offre une plus grande flexibilité pour les tests de performances.
LoadView fournit des rapports et des tableaux de bord de performance conviviaux, offrant des informations claires sur les facteurs contribuant à des performances sous-optimales. De plus, il comprend une vidéo de référence pour les tests de pages Web et d’applications Web, permettant une comparaison directe avec les rapports pour visualiser le point de vue de l’utilisateur. LoadView propose des plans mensuels et annuels flexibles, accompagnés d’une assistance 24h/24 et 7j/7 pour tous les clients, quel que soit le forfait choisi, ce qui le distingue de certains autres outils du marché.
Niveau suivant
Découvrez des fonctionnalités inégalées avec une évolutivité illimitée. Pas de carte de crédit, pas de contrat.