Feather Background Waves Background
Aller au contenu
Feather Background Waves Background
Feather Background Waves Background
  1. JMeter en Français/

Débogage pendant l'exécution

intermédiaire - This article is part of a series.

Debugging

Lors de la réalisation d’un test de charge via le terminal, certaines erreurs peuvent survenir. Il est possible d’utiliser la commande tail sur le fichier JTL pour obtenir une idée des codes d’erreur ou des informations concernant les messages de réponse. Ces informations peuvent être ambigues ou insuffisantes. Par conséquent, lorsque vous avez des requêtes ou des transactions avec un taux d’erreurs faible (par un taux d’erreurs faible, je veux dire moins de 20%), il existe des moyens pour obtenir plus d’informations, comme la configuration d’écoutants pour sauvegarder les réponses dans un fichier flat ou XML. Il y a également une solution relativement efficace que j’ai partagée sur le site Flood.io.

This solution consumes few resources and can send any associated response values to the JMeter log so we can analyze them in detail. This solution is to use a JSR223 listener, which must contain the following code:

if (!prev.isSuccessful()) {
  log.info("Le Label de sample est : " + prev.getSampleLabel());
  log.info("Le temps d'initialisation en millisecondes est : " + prev.getStartTime());
  log.info("Le code de réponse est : " + prev.getResponseCode());
  log.info("La message de réponse est : " + prev.getResponseMessage());
  log.info("Les headers sont : " + prev.getResponseHeaders());
}

Il est extrêmement important que le cache de script soit activé et que ce soit le compilateur Groovy également. Il devrait également être placé au niveau du plan d’examen, surtout si il y a plusieurs groupes de tâches ou s’il n’y a qu’un seul groupe de tâches.

Voici un exemple de contenu plus récent qui contient la réponse à envoyer ce contenu au journal de l’analyse JMeter.

if (prev.isSuccessful() == false) {
    log.info("###########################################################")
    log.info("Le Label de la Saisie est : " + prev.getSampleLabel())
    log.info("Le Payload de la Saisie est : " + prev.getSamplerData())
    log.info("La Date d'initialisation en millisecondes est : " + prev.getStartTime())
    log.info("Les Données de réponse sont : " + prev.getResponseDataAsString())
    log.info("Le Code de réponse est : " + prev.getResponseCode())
    log.info("Le Message de réponse est : " + prev.getResponseMessage())
    log.info("Les Headers sont : " + prev.getResponseHeaders())
    log.info("###########################################################")
}
Qu’est-ce que le code fait ?>

Qu’est-ce que le code fait ? #

Le code évalue toutes les réponses des sondes et si la sonde est marquée comme échouée, les données suivantes seront envoyées :

  • Nom du tag
  • Temps de timestamp
  • Code de réponse
  • Réponse message
  • Headers

Si vous souhaitez ajouter d’autres valeurs, je recommande de vérifier ici, qui pourrait être utile pour votre débogage. Il faut noter que ce n’est pas spécifiquement conçu pour les samplers HTTP, mais vous pouvez l’adapter pour capturer des informations pertinentes de tout autre protocole.

jsr223

Conclusion>

Conclusion #

Le but général de ce code est d’être capable de voir en temps réel, à l’aide d’une commande comme tail, n’importe quel type d’erreur dans les codes de réponse que nous recevons de nos requêtes. Cela sera sauvegardé dans le journal JMeter (jmeter.log). Il est également idéal pour stocker des preuves et des documents potentiels de l’origine de ces erreurs.



intermédiaire - This article is part of a series.