Que sont les minuteries?
Par défaut, JMeter envoie la demande sans faire de pause entre chaque demande. Dans ce cas, JMeter pourrait submerger votre serveur de test en effectuant trop de requêtes en peu de temps.
Imaginons que vous envoyiez des milliers de requêtes à un serveur Web en cours de test en quelques secondes. Voilà ce qui se passe!
Les minuteries permettent à JMeter de retarder entre chaque requête effectuée par un thread. Un minuteur peut résoudre le problème de surcharge du serveur .
De plus, dans la vraie vie, les visiteurs n'arrivent pas sur un site Web tous en même temps, mais à des intervalles de temps différents. Donc Timer aidera à imiter le comportement en temps réel.
Dans ce tutoriel, vous apprendrez
- Minuterie constante
- Minuterie aléatoire gaussienne
- Minuterie aléatoire uniforme
- Minuterie BeanShell
- Minuterie BSF
- Minuterie JSR223
- Comment utiliser la minuterie constante
Voici quelques types courants de minuterie dans JMeter
Minuterie constante:
Le temporisateur constant retarde chaque demande d'utilisateur pendant la même durée.
Minuterie aléatoire gaussienne:
Le temporisateur aléatoire gaussien retarde chaque demande d'utilisateur pendant une durée aléatoire .
Paramètres:
Attribut | Description |
---|---|
Nom | Nom descriptif de ce minuteur affiché dans l'arborescence |
Écarts (millisecondes) | Un paramètre de la fonction de distribution gaussienne |
Décalage du délai constant (millisecondes) | Valeur supplémentaire en millisecondes |
Ainsi, le retard total est décrit comme ci-dessous:
Minuterie aléatoire uniforme:
Le temporisateur aléatoire uniforme retarde chaque demande d'utilisateur pendant une durée aléatoire.
Paramètres:
Attribut |
Description |
---|---|
Nom |
Nom descriptif de ce minuteur affiché dans l'arborescence |
Délai aléatoire maximum |
Nombre aléatoire maximum de millisecondes à retarder. |
Décalage du délai constant (millisecondes) |
Valeur supplémentaire en millisecondes |
Le retard total est la somme de la valeur aléatoire et de la valeur de décalage.
Minuterie BeanShell
Le BeanShell Timer peut être utilisé pour générer un délai entre chaque requête utilisateur.
Minuterie BSF
Le temporisateur BSF peut être utilisé pour générer un délai entre chaque demande d'utilisateur à l'aide d'un langage de script BSF.
Minuterie JSR223
Le minuteur JSR223 peut être utilisé pour générer un délai entre chaque requête utilisateur à l'aide d'un langage de script JSR223
Comment utiliser la minuterie constante
Dans cet exemple, vous utiliserez Constant Timer pour définir un délai fixe entre les demandes des utilisateurs à google.com.
Commençons par un simple script de test
- JMeter crée une demande utilisateur à http://www.google.com 100 fois
- Le délai entre chaque demande utilisateur est de 5000 ms
Voici la feuille de route de cet exemple pratique:
Condition préalable:
Nous réutilisons les étapes 1 et 2 du didacticiel JMeter Performance Testing.
Étape 1) 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 des threads comme suit
Ce paramètre permet à JMeter de créer une demande utilisateur à http://www.google.com 100 fois
Étape 2) Ajouter des éléments JMeter
- Ajouter la requête HTTP par défaut
- Ajouter une requête HTTP
Étape 3) Ajouter une minuterie constante
Cliquez avec le bouton droit sur Groupe de threads -> Minuterie -> Minuterie constante
Configuration du délai de thread de 5000 millisecondes
Étape 4) Ajouter les résultats de la vue dans le tableau
Afficher les résultats dans un tableau affiche le résultat du test sous forme de tableau.
Cliquez avec le bouton droit sur Ajouter -> Écouteur -> Afficher le résultat dans le tableau
Afficher les résultats dans le tableau s'affiche comme ci-dessous
Étape 5) Exécutez votre test
Lorsque vous êtes prêt à exécuter un test, cliquez sur le bouton Exécuter dans la barre de menus ou sur la touche de raccourci Ctrl + R
Voici le résultat de ce test
Par exemple, dans la figure ci-dessus, analysons l' échantillon 2
- L'heure de début est 22: 05: 01.866
- Le temps d'échantillonnage de l'échantillon 2 est de 172 ms
- Minuterie constante : 5000 ms (comme configuré)
- L'heure de fin de cet exemple est = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Ainsi, l'échantillon 3 devrait commencer à l'heure 22: 05: 07.039 (comme indiqué dans la figure ci-dessus)
Le délai de chaque échantillon est de 5000 ms
Si vous modifiez la minuterie constante à zéro , vous verrez que le résultat est changé
Analysons l' échantillon 1
- L'heure de début est 22: 17: 39.141
- Le temps d'échantillonnage de l'échantillon 2 est de 370 ms
- Minuterie constante : 0 ms (comme configuré)
- L'heure de fin de cet échantillon est = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Ainsi, l' échantillon 2 devrait commencer à l'heure 22: 17: 39.512 ( illustré dans la figure ci-dessus)
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 TimerTestPlan.jmx dans Jmeter
- Double-cliquez sur Thread Group -> Afficher le résultat dans le tableau
- Exécutez le test