Contrôleurs logiques dans Jmeter

Contrôleurs logiques dans Jmeter
MIN
05 Jan 2024

Dans le tutoriel précédent, nous avons abordé les échantillonneurs et les différents types de requêtes d’échantillonnage disponibles dans JMeter. Dans ce tutoriel, nous étudierons les contrôleurs logiques qui personnalisent la manière dont les différentes requêtes sont envoyées au serveur.

Contrôleurs logiques

Les contrôleurs logiques sont des éléments du plan de test utilisés pour ajuster l’ordre de traitement des échantillonneurs et d’autres éléments ajoutés en tant que fils. Les contrôleurs logiques sont principalement utilisés dans les demandes de l’échantillonneur pour effectuer diverses personnalisations telles que modifier l’ordre de leur traitement, les regrouper en une seule transaction ou exécuter des demandes en boucle, etc.

>>> Marche à suivre pour démarrer un contrôleur logique – cliquez avec le bouton droit de la souris sur le groupe de fils – allez à Ajouter – allez à Contrôleurs logiques – cliquez sur les contrôleurs logiques souhaités .

Capture d'écran des instructions de démarrage du contrôleur logique

Pourquoi avons-nous besoin de contrôleurs logiques ?

Les scripts de test de performance sont utilisés pour simuler les actions des utilisateurs réels. Comme un utilisateur réel, il effectuera de multiples actions de différentes manières, par exemple en effectuant un ensemble d’opérations de manière séquentielle (par exemple, naviguer de la page de connexion à la page d’accueil), en effectuant des types d’opérations similaires en boucle (par exemple, lire plusieurs courriels non lus), en effectuant certaines opérations de manière aléatoire, etc. Pour simuler ces différents types d’actions, JMeter nous fournit différents types de contrôleurs logiques qui personnalisent le traitement des éléments qu’ils contiennent.

Examinons maintenant les différents contrôleurs logiques fournis par JMeter :

Contrôleur de la section critique

Il s’agit d’un contrôleur nouvellement ajouté au système JMeter. Garantit qu’un seul thread à la fois accède aux éléments esclaves de ce contrôleur.

ForEach Contrôleur

Ce contrôleur est utilisé pour exécuter des requêtes en boucle sur la base des valeurs d’un ensemble de variables connexes.

Si le contrôleur

En utilisant le contrôleur If, nous pouvons spécifier une condition pour que l’élément enfant qu’il contient soit déclenché ou non, en fonction de la condition qui doit être évaluée comme vraie ou fausse.

Inclure le contrôleur

Le contrôleur Include peut être utilisé pour assurer la modularité de JMeter. Grâce à ce contrôleur, nous pouvons ajouter un fichier .jmx (fragment de test) externe à notre script existant en chargeant le fichier jmx dans le contrôleur Include.

Contrôleur d’entrelacement

Le contrôleur Interleave nous permet de sélectionner et d’exécuter un élément enfant parmi plusieurs enfants à chaque itération de la boucle. Par exemple, si trois échantillonneurs sont ajoutés en tant qu’esclaves au contrôleur d’entrelacement, lors de la première itération, la première demande d’échantillonnage sera sélectionnée, lors de l’itération suivante, la suivante, et ainsi de suite. Lorsque les éléments enfants sont terminés, l’itération recommence à partir du premier élément.

Contrôleur de boucle

Permet d’effectuer des opérations spécifiées comme éléments enfants dans une boucle avec la valeur d’itération spécifiée dans son panneau de contrôle.

Contrôleur de module

En utilisant le contrôleur de modules, nous pouvons réappliquer un fragment de test (par exemple un échantillonneur) à notre script en sélectionnant le module dans le panneau de contrôle du contrôleur de modules.

Contrôleur unique

Le contrôleur Once Only est utilisé dans une situation où l’on souhaite exécuter une opération une seule fois, même si l’opération est exécutée dans une boucle.

Contrôleur aléatoire

Il est similaire à un contrôleur aléatoire et sélectionne un élément enfant à chaque itération, mais contrairement au contrôleur entrelacé, il sélectionne l’élément enfant de manière aléatoire.

Contrôleur d’ordre aléatoire

Le contrôleur d’ordre aléatoire est utilisé pour exécuter chacun de ses éléments enfants au maximum une fois dans un ordre aléatoire.

Contrôleur d’enregistrement

Ce contrôleur est l’endroit où les scripts enregistrés à l’aide du proxy HTTP sont enregistrés par défaut (voir notre tutoriel pour plus de détails sur l’enregistrement et la lecture dans JMeter).

Contrôleur d’exécution

Le contrôleur d’exécution est utilisé pour limiter le temps d’exécution de ses éléments enfants. Par exemple, si nous avons spécifié une valeur « Runtime » de 100 secondes, les éléments à l’intérieur du contrôleur Runtime s’exécuteront pendant 100 secondes avec autant d’itérations que possible.

Contrôleur simple

Ce contrôleur n’est qu’un endroit où regrouper et organiser les différents éléments du plan de test.

Contrôleur de commutation

Ce contrôleur est utilisé pour sélectionner un élément à traiter parmi ses multiples éléments enfants. L’élément n’est pas sélectionné dans un ordre séquentiel ou aléatoire ; il est sélectionné en fonction de la valeur de commutation définie dans son panneau de commande. La valeur de commutation peut être une variable dont la valeur est évaluée au niveau de l’élément index(position) ou du nom de l’élément. Par exemple, si, lors de la première itération, la valeur de l’interrupteur est évaluée à « 3 », le quatrième élément est sélectionné pour être traité (la valeur de l’index commence à 0). De même, si la valeur d’un commutateur est évaluée comme un nom d’élément, cet élément est sélectionné pour le traitement.

Contrôleur de débit

Le contrôleur de débit est utilisé pour contrôler le traitement de ses éléments enfants en fonction du nombre total d’exécutions ou du pourcentage d’exécutions spécifié dans son panneau de contrôle.

Contrôleur de transactions

Le contrôleur de transaction est l’un des contrôleurs fréquemment utilisés dans les scripts JMeter. Il est utilisé pour regrouper plusieurs demandes d’échantillonnage en une seule. Le temps de réponse et d’autres paramètres de performance du résultat du test sont évalués pour l’ensemble de la transaction. Par exemple, lorsque vous vérifiez les performances de la page d’accueil d’une application, vous pouvez constater que le lancement de la page d’accueil génère un grand nombre de requêtes au niveau du backend. Nous devons donc regrouper toutes ces demandes en une seule transaction, ce à quoi sert le contrôleur de transaction JMeter. Après avoir exécuté le script, nous pouvons voir le temps de réponse total de l’ensemble de la transaction.

Pendant que le contrôleur

Le contrôleur While est utilisé pour déclencher les éléments enfants qu’il contient jusqu’à ce que la valeur spécifiée dans son panneau de contrôle soit évaluée à false.