web-dev-qa-db-fra.com

Comment analyser le résultat de JMeter?

Je suis nouveau dans l'outil JMeter. Quelqu'un peut-il m'aider à analyser le mieux possible les rapports JMeter?

39
john

Simplement la liste des liens que vous pouvez trouver utiles:

Graphes natifs: 

Solutions open source gratuites pour les graphes automatisés:

Recettes avec développement personnalisé:

Solutions tierces:

37
Aliaksandr Belik

Lors des tests de performance, il y a 3 tests indispensables, il doit toujours y avoir une ligne de base, un test de pointe et un test de résistance. Ces tests se rapportent les uns aux autres à cause de la loi de little. Le nombre moyen de clients à long terme dans un système stable L est égal au taux d'arrivée effectif moyen à long terme, λ, multiplié par le temps qu'un client passe dans le système, W; ou exprimé algébriquement: L = λW. .

 enter image description here

Jmeter fournit déjà des moyens pour vérifier ces valeurs, le plugin standard fournit des tracés pour les temps de réponse, les hits et le débit. Il n'y a aucun moyen de dire directement combien d'utilisateurs étaient actifs sur le système, il ne s'agit pas des mêmes utilisateurs simultanés que des utilisateurs actifs. Les plugins sont suffisants pour produire les rapports, mais ils ne permettent pas de contrôler une grande partie de la présentation, je vais utiliser des tracés produits en python (ils ajoutent des étiquettes et ont un axe y).

Test de base: Ce cas est un cas particulier de la loi, dans ce cas les utilisateurs actifs sont constants et il en est un, alors:

  • L = λW
  • 1 = λW
  • 1/W = λ

 enter image description here

Si l'application exécute le même morceau de code, le temps de réponse se stabilisera dans le temps, le taux d'arrivée sera également constant dans le temps.

Il existe un service qui ne fait rien d’attendre que d’attendre quelque temps:

 enter image description here

Service de 2 secondes:} _ Le taux d'arrivée était de 1/2TPS.

 enter image description here

Service en 3 secondes:} _ Le taux d'arrivée était de 1/3TPS.

 enter image description here

Peak Test: Ce n'est pas un cas spécial, dans ce cas, chargez incrément jusqu'à ce qu'il dépasse le débit du système, car la charge est supérieure au débit, les temps de réponse augmentent. Pendant le test, le nombre de threads doit augmenter suffisamment rapidement pour pouvoir récupérer après des temps de réponse longs.

 enter image description here

Cette fois, au lieu d’exécuter le pic, je vais insister sur le système avec plus de charge que ce qu’il est capable de gérer pendant tout le test. Pour contrôler le débit du service:

 enter image description here

Les transactions actives sont celles qui ont quitté l'injecteur mais qui n'ont pas reçu de réponse, ce sont des transactions qui sont en attente quelque part dans le système.

  • λ (t) = c, T(t) = k; la charge ainsi que le débit sont constants dans le temps.
  • L = Σλ - T = ct - kt; Les transactions actives correspondent à la différence entre la charge cumulative et le débit cumulé.
  • L = (c - k) t
  • λW = (c - k) t
  • CW (t) = (c - k) t
  • W (t) = t (c - k)/c

Etant donné que les temps de réponse sont plus longs que les utilisateurs actifs, nous avons besoin de l'injecteur pour créer de nouveaux threads dès que de nouvelles connexions sont requises, la plupart des threads du pool seront occupés. 

Taux d'arrivée 2TPS, 1 débit TPS:

  • La fonction temps de réponse est 1/2t
  • L'injecteur sollicite le système pendant 300 secondes.
  • Le test dure 600 secondes.

 enter image description here

Taux d'arrivée 4TPS, 1 débit TPS:

  • La fonction temps de réponse est 3/4t
  • L'injecteur sollicite le système pendant 300 secondes.
  • Le test dure 1200 secondes.

 enter image description here

Taux d'arrivée 6TPS, débit 5 TPS:

  • La fonction temps de réponse est 1/6t
  • L'injecteur sollicite le système pendant 300 secondes.
  • Le test dure 360 ​​secondes.

 enter image description here

5
Sebastian G.

À partir de la version 3.0, JMeter inclut un rapport HTML dynamique pouvant être généré à la fin d'un test de charge ou à partir d'un fichier de résultat.

Voir tableau de bord de génération

2
benbenw

Dans Word simple, si vous souhaitez analyser votre rapport JMeter ...

  1. Commencez avec la CPU du serveur et RAM utilisation. Lorsque vous exécutez un test de performances sur votre serveur, voyez combien de CPU et RAM est utilisé par le test actuel.
    Exécutez la commande suivante sur le serveur de site hébergé. cela créera un fichier journal d'utilisation du processeur.

    while true; do 
      ( echo "%CPU %MEM ARGS $(date)" &&
        ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 |
        tail ) >> ps.log
      sleep 1
    done
    
  2. Voir le temps de réponse global, il ne doit pas dépasser les critères de temps de réponse attendus .. Voir l'image ci-dessous. Mon attente est que le temps de réponse ne devrait pas dépasser 525 microsecondes, mais certaines demandes le traversent. Trouvez ce genre de demandes qui prennent du temps.

    Temps de réponse global:

     overall response time

  3. Voir Transaction par seconde, combien de transactions sont effectuées par seconde et y a-t-il une baisse de la période de test?

  4. Examinez le rapport de synthèse, le temps moyen et le temps maximal pour voir quelles demandes prennent le plus de temps . Actuellement, de nombreux écouteurs sont disponibles dans JMeter sous forme de modules complémentaires ou intégrés, mais ce sont là les points principaux à examiner dans l'ordre être capable de deviner correctement ce qui se passe. Et vous pouvez utiliser d'autres rapports comme celui-là.

Suivez mon blog pour plus de détails https://softwaretesterfriend.blogspot.in/

2

Pour analyser vos résultats JMeter, vous pouvez utiliser

  1. Auditeurs en JMeter
  2. Blazemeter Sense
  3. Tableau de bord des rapports
1
Satyajit

En plus de toutes les autres réponses: il existe un site Nice de BlazeMeter où vous pouvez télécharger votre fichier de résultat de test (.jtl) et générer toutes sortes de rapports (interactifs). Il les analyse même pour vous et indique la première erreur, le point de saturation, etc. https://sense.blazemeter.com/gui/

Si vous avez une infrastructure graphite/grafana, je peux recommander l’ajout de l’écouteur backend au projet. Il enverra des mesures en temps réel au serveur de graphite et vous pourrez surveiller le test en graphite (ou grafana). 

0
Sven