15. Résultats en temps réel

Depuis JMeter 2.13, vous pouvez obtenir des résultats en temps réel envoyés à un backend via le Backend Listener en utilisant potentiellement n'importe quel backend (JDBC, JMS, Webservice, …) en fournissant une classe qui implémente AbstractBackendListenerClient .
JMeter est livré avec :

  • un GraphiteBackendListenerClient qui vous permet d'envoyer des métriques à un Backend Graphite.
    Cette fonctionnalité fournit :
    • Résultats en direct
    • Beaux graphiques pour les métriques
    • Possibilité de comparer 2 tests de charge ou plus
    • Stockage des données de surveillance tant que JMeter aboutit au même backend
  • un InfluxDBBackendListenerClient introduit dans JMeter 3.2 qui vous permet d'envoyer des métriques à un InfluxDB Backend en utilisant les protocoles UDP ou HTTP Cette fonctionnalité fournit :
    • Résultats en direct
    • Beaux graphiques pour les métriques
    • Possibilité de comparer 2 tests de charge ou plus
    • Possibilité d'ajouter des annotations aux graphiques
    • Stockage des données de surveillance tant que JMeter aboutit au même backend
Dans ce document, nous présenterons la configuration de la configuration pour représenter graphiquement et historiser les données dans différents backends :
  • Configuration d'InfluxDB pour InfluxDBBackendListenerClient
  • Configuration d'InfluxDB pour GraphiteBackendListenerClient
  • Grafana
  • Graphite

15.1 Métriques exposées

15.1.1 Métriques des threads/utilisateurs virtuels

Les métriques de thread sont les suivantes :

<rootMetricsPrefix>test.minAT
Nombre minimum de threads actifs
<rootMetricsPrefix>test.maxAT
Nombre maximal de threads actifs
<rootMetricsPrefix>test.meanAT
Moyenne des threads actifs
<rootMetricsPrefix>test.startedT
Discussions lancées
<rootMetricsPrefix>test.endedT
Fils finis

15.1.2 Métriques des temps de réponse

Les métriques liées à la réponse sont les suivantes :

<rootMetricsPrefix><samplerName>.ok.count
Nombre de réponses réussies pour le nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.h.count
Appels de serveur par seconde, cette métrique cumule les résultats de l'échantillon et les sous-résultats (si vous utilisez le contrôleur de transaction, "Générer l'échantillonneur parent" doit être décoché)
<rootMetricsPrefix><samplerName>.ok.min
Temps de réponse minimum pour les réponses réussies du nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.ok.max
Temps de réponse maximum pour les réponses réussies du nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.ok.avg
Temps de réponse moyen pour les réponses réussies de nom de l'échantillonneur.
<rootMetricsPrefix><samplerName>.ok.pct<percentileValue>
Centile calculé pour les réponses réussies du nom de l'échantillonneur. Il y aura une métrique pour chaque valeur calculée.
<rootMetricsPrefix><samplerName>.ko.count
Nombre d'échecs de réponses pour le nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.ko.min
Temps de réponse minimum pour les réponses en échec du nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.ko.max
Temps de réponse maximum pour les réponses échouées du nom de l'échantillonneur
<rootMetricsPrefix><samplerName>.ko.avg
Temps de réponse moyen pour les réponses ayant échoué de nom de l'échantillonneur.
<rootMetricsPrefix><samplerName>.ko.pct<percentileValue>
Centile calculé pour les réponses ayant échoué pour le nom de l'échantillonneur. Il y aura une métrique pour chaque valeur calculée.
<rootMetricsPrefix><samplerName>.a.count
Nombre de réponses pour le nom de l'échantillonneur (somme de ok.count et ko.count)
<rootMetricsPrefix><samplerName>.sb.bytes
Octets envoyés
<rootMetricsPrefix><samplerName>.rb.bytes
Octets reçus
<rootMetricsPrefix><samplerName>.a.min
Temps de réponse minimum pour les réponses du nom de l'échantillonneur (min de ok.count et ko.count)
<rootMetricsPrefix><samplerName>.a.max
Temps de réponse maximum pour les réponses du nom de l'échantillonneur (max de ok.count et ko.count)
<rootMetricsPrefix><samplerName>.a.avg
Temps de réponse moyen pour les réponses du nom de l'échantillonneur (moyenne de ok.count et ko.count)
<rootMetricsPrefix><samplerName>.a.pct<percentileValue>
Centile calculé pour les réponses du nom de l'échantillonneur. Il y aura une métrique pour chaque valeur calculée. (calculé sur les totaux pour les échantillons OK et échoués)

Le paramètre de centiles par défaut sur le Backend Listener est "90 ; 95 ; 99", c'est-à-dire les 3 centiles 90 %, 95 % et 99 %.

La hiérarchie de dénomination Graphite utilise des points ("".") pour séparer les éléments. Cela pourrait être confondu avec les valeurs décimales en centiles. JMeter convertit ces valeurs en remplaçant le point ("".") par un trait de soulignement ("-"). Par exemple, " 99.9 " devient " 99_9 "

Par défaut, JMeter envoie des métriques pour tous les échantillonneurs accumulés sous le samplerName " all ". Si le samplersList de Backend Listener est configuré, alors JMeter envoie également les métriques pour les noms d'échantillons correspondants à moins que summaryOnly=true

15.2 Configuration de JMeter

Pour que JMeter envoie des métriques au backend, ajoutez un BackendListener à l'aide de InfluxDBBackendListenerClient.

Configuration d'InfluxDB
Configuration d'InfluxDB

15.3 Configuration d'InfluxDB

Effectuez l'une des actions suivantes pour stocker les données envoyées par le Backend Listener :

  • Pour la configuration d'InfluxDB 2, créez un compartiment jmeter
  • Pour la configuration d'InfluxDB 1.x, créez une base de données jmeter à l'aide de l'interface de ligne de commande Influx
Vous pouvez également utiliser l'API HTTP, c'est-à-dire curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"

15.3.1 Configuration d'InfluxDB pour InfluxDBBackendListenerClient

InfluxDB est une base de données open-source distribuée de séries chronologiques qui permet de stocker facilement des métriques. L'installation et la configuration sont très simples, lisez ceci pour plus de détails Documentation InfluxDB .
Les données InfluxDB peuvent être facilement visualisées dans un navigateur via Grafana .

15.3.2 Configuration d'InfluxDB 2 pour InfluxDBBackendListenerClient

La configuration doit spécifier le paramètre influxdbToken et également spécifier bucket et org comme paramètres de requête dans influxdbUrl . Voir l' API InfluxDB v2 pour plus de détails.

Comment récupérer les informations requises dans l'interface utilisateur InfluxDB :

Configuration d'InfluxDB 2
Configuration d'InfluxDB 2

15.4 Configuration de Grafana

Installation de grafana
Lisez la documentation pour plus de détails. Ajouter la source de données

Voici le genre de tableau de bord que vous pourriez obtenir :
Tableau de bord Grafana
Tableau de bord Grafana

15.5 Graphite

AIDE BIENVENUE pour cette section, voir Contribuer à la documentation

Go to top