Test de charge JMeter
JMeter Load Testing est un processus de test effectué à l'aide d'un outil de test de charge nommé Apache JMeter, une application de bureau open source basée sur Java. JMeter pour les tests de charge est un outil crucial qui détermine si l'application Web testée peut satisfaire ou non des exigences de charge élevées. Il aide également à analyser le serveur global sous une charge importante.
Test de performance JMeter
JMeter Performance Testing est une méthode de test réalisée à l'aide d'Apache JMeter pour tester les performances d'une application Web. JMeter pour les tests de performances permet de tester les ressources statiques et dynamiques, aide à découvrir les utilisateurs simultanés sur le site Web et fournit une variété d'analyses graphiques pour les tests de performances. Les tests de performance JMeter incluent le test de charge et le test de résistance de l'application Web.
L'outil de test Apache JMeter offre les avantages suivants dans les tests de performances
- JMeter peut être utilisé pour tester les performances des ressources statiques telles que JavaScript et HTML, ainsi que des ressources dynamiques , telles que JSP, servlets et AJAX.
- JMeter peut découvrir le nombre maximum d'utilisateurs simultanés que votre site Web peut gérer
- JMeter fournit une variété d'analyses graphiques de rapports de performance.
Les tests de performance JMeter comprennent:
- Test de charge : Modélisation de l'utilisation prévue en simulant l'accès de plusieurs utilisateurs aux services Web simultanément.
- Test de stress : chaque serveur Web a une capacité de charge maximale. Lorsque la charge dépasse la limite, le serveur Web commence à répondre lentement et génère des erreurs. Le but du test de résistance est de trouver la charge maximale que le serveur Web peut gérer.
La figure ci-dessous montre comment le test de charge JMeter simule la charge lourde:
Créer un plan de test de performance dans JMeter
Dans ce tutoriel, nous effectuons une analyse des performances de Google.com pour 1000 utilisateurs
Avant de tester les performances de l'application Web cible, nous devons déterminer:
- Charge normale : nombre moyen d'utilisateurs visitant votre site Web
- Charge lourde : le nombre maximum d'utilisateurs visitant votre site Web
- Quelle est votre cible dans ce test?
Voici la feuille de route de cet exemple pratique
Étape 1) Ajouter un groupe de threads
- Démarrez JMeter
- Sélectionnez Plan de test dans l'arborescence
- Ajouter un groupe de threads
Faites un clic droit sur le "Plan de test" et ajoutez un nouveau groupe de threads: Ajouter -> Threads (Utilisateurs) -> Thread Group
Dans le panneau de configuration du groupe de threads, entrez les propriétés de thread comme suit:
- Nombre de threads : 100 (nombre d'utilisateurs se connectent au site Web cible: 100)
- Nombre de boucles : 10 (nombre de fois pour exécuter le test)
- Période de montée en puissance : 100
Le nombre de threads et le nombre de boucles sont différents.
La période de montée en puissance indique à JMeter combien de temps il faut attendre avant de démarrer le prochain utilisateur. Par exemple, si nous avons 100 utilisateurs et une période de montée en puissance de 100 secondes, le délai entre les utilisateurs débutants serait de 1 seconde (100 secondes / 100 utilisateurs)
Étape 2) Ajout d'éléments JMeter
Nous déterminons maintenant quels éléments JMeter dans ce test. Les éléments sont
-
Requête HTTP Par défaut
Cet élément peut être ajouté en cliquant avec le bouton droit sur le groupe de threads et en sélectionnant: Ajouter -> Élément de configuration -> Paramètres par défaut de la requête HTTP.
Dans le panneau de configuration Paramètres par défaut des requêtes HTTP, saisissez le nom du site Web testé (http://www.google.com)
-
Requête HTTP
Cliquez avec le bouton droit sur Thread Group et sélectionnez: Add -> Sampler -> HTTP Request .
Dans le panneau de configuration des requêtes HTTP, le champ Chemin indique la requête URL que vous souhaitez envoyer au serveur Google.
Par exemple, si vous entrez "calendrier" dans le champ Chemin. JMeter créera la demande d'URL http://www.google.com/calendar vers le serveur Google
Si vous laissez le champ Chemin vide, JMeter créera la demande d'URL http://www.google.com auprès du serveur Google.
Dans ce test, vous laissez le champ Chemin vide pour que JMeter crée la demande d'URL http://www.google.com vers le serveur Google.
Étape 3) Ajout du résultat du graphique
JMeter peut afficher le résultat du test au format graphique.
Cliquez avec le bouton droit sur Plan de test, Ajouter -> Écouteur -> Résultats du graphique
Étape 4) Exécutez le test et obtenez le résultat du test
Appuyez sur le bouton Exécuter (Ctrl + R) dans la barre d'outils pour démarrer le processus de test du logiciel. Vous verrez l'affichage des résultats du test sur le graphique en temps réel.
L'image ci-dessous présente un graphique d'un plan de test, où nous avons simulé 100 utilisateurs qui ont accédé sur le site www.google.com.
Au bas de l'image, il y a les statistiques suivantes, représentées en couleurs:
- Noir: le nombre total d'échantillons actuellement envoyés.
- Bleu: la moyenne actuelle de tous les échantillons envoyés.
- Rouge: l'écart type actuel.
- Vert: débit qui représente le nombre de requêtes par minute traitées par le serveur
Analysons les performances du serveur Google dans la figure ci-dessous.
Pour analyser les performances du serveur Web testé, vous devez vous concentrer sur 2 paramètres
- Débit
- Déviation
Le débit est le paramètre le plus important. Il représente la capacité du serveur à gérer une charge importante. Le plus le débit est élevé , mieux est la performance du serveur.
Dans ce test, le débit du serveur Google est de 1 491,193 / minute. Cela signifie que le serveur de Google peut traiter 1 491,193 requêtes par minute. Cette valeur est assez élevée, nous pouvons donc en conclure que le serveur Google a de bonnes performances
L' écart est affiché en rouge - il indique l'écart par rapport à la moyenne. Le plus petit sera le mieux .
Comparons les performances du serveur Google à celles d'autres serveurs Web. Ceci est le résultat du test de performance du site Web http://www.yahoo.com/ (vous pouvez choisir d'autres sites Web)
Le débit d'un site Web sous test http://www.yahoo.com est de 867,326 / minutes. Cela signifie que ce serveur traite 867,326 requêtes par minute, moins que Google.
L'écart est de 2689, bien plus élevé que Google (577). Nous pouvons donc déterminer que les performances de ce site Web sont inférieures à celles d'un serveur Google.
REMARQUE: Les valeurs ci-dessus dépendent de plusieurs facteurs tels que la charge actuelle du serveur chez Google, votre vitesse Internet, la puissance de votre processeur, etc. Par conséquent, il est très peu probable que vous obteniez les mêmes résultats que ci-dessus. Alors ne paniquez pas!
Dépannage:
Si vous rencontrez le problème lors de l'exécution du scénario ci-dessus… procédez comme suit
- Vérifiez si vous vous connectez à Internet via un proxy. Si oui, supprimez le proxy.
- Ouvrez une nouvelle instance de Jmeter
- Ouvrez le PerformanceTestPlan.jmx dans Jmeter
- Double-cliquez sur Thread Group -> Graph Result
- Exécutez le test