Jmeter Timers: Constant, Gaussian Random, Uniform (Exemple)

Table des matières:

Anonim

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

  1. JMeter crée une demande utilisateur à http://www.google.com 100 fois
  2. 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

  1. Vérifiez si vous vous connectez à Internet via un proxy. Si oui, supprimez le proxy.
  2. Ouvrez une nouvelle instance de JMeter
  3. Ouvrez le TimerTestPlan.jmx dans Jmeter
  4. Double-cliquez sur Thread Group -> Afficher le résultat dans le tableau
  5. Exécutez le test