jmeter processors controllers
Présentation des pré-processeurs et des contrôleurs dans JMeter (partie III):
=> Suivez une série complète de didacticiels JMeter gratuits ici
Cet article guidera les utilisateurs dans l'utilisation des pré-processeurs, post-processeurs et contrôleurs dans JMeter. Les contrôleurs sont très utiles car ils créent vos scénarios de test.
Vous souhaiterez peut-être tester différents scénarios dans lesquels vous souhaitez configurer votre propre séquence d'une demande envoyée à un serveur pour surveiller le temps de réponse et d'autres facteurs de performances.
Ce que vous apprendrez:
- Pré-processeurs
- Paramètres utilisateur
- Délai d'expiration de l'échantillon
- Contrôleurs
- Exemple en temps réel
- Modèle d'enregistrement de JMeter
- Conclusion
- lecture recommandée
Pré-processeurs
Ce sont les éléments qui sont exécutés avant l'exécution d'un échantillonneur. Vous pouvez attacher le pré-processeur à l'échantillonneur pour lequel vous souhaitez apporter des modifications à la demande.
Le plus simple d'un cas pourrait être l'ajout d'un préprocesseur «Sample Timeout» avec une requête HTTP afin que cette requête ne s'exécute que pendant une durée définie. Il s'assure également que cette modification n'est effectuée que pour l'échantillonneur parent.
Voici quelques-uns des pré-processeurs utilisés dans JMeter:
- Pré-processeur Bean Shell
- Analyseur de lien HTML
- Réécriture d'URL HTTP
- Préprocesseur JDBC
- Délai d'expiration de l'échantillon
- Paramètres utilisateur
Les plus couramment utilisés sont expliqués ci-dessous avec des exemples. Vous pouvez ou non avoir besoin de tout dans vos projets. Essayez d'identifier les scénarios liés à votre projet et implémentez ceux qui vous aident à couvrir les scénarios de performance en temps réel.
Paramètres utilisateur
Les paramètres utilisateur sont utilisés pour définir les valeurs des variables avant leur utilisation dans les échantillonneurs. Lorsque JMeter exécute cet élément Pre-Processor, il stocke les valeurs dans les variables qui peuvent être référencées par n'importe quel échantillonneur du même groupe de threads.
différence entre serveur client et application Web
Si vous avez plus de threads que le nombre d'utilisateurs dans «Paramètres utilisateur», les threads supplémentaires réitèrent les valeurs à nouveau.
Par exemple, vous avez 5 utilisateurs dans votre groupe de threads mais seulement 3 en pré-processeur, puis votre 4eet un 5ele fil utilisera param1 et param2 .
Délai d'expiration de l'échantillon
Ce pré-processeur permet de définir la durée du timeout des requêtes.
Par exemple, Si vous avez mis un échantillon de temps sur 400 millisecondes, toutes les demandes qui prennent du temps> 400 auront une réponse échouée. Veuillez voir les captures d'écran ci-dessous.
Contrôleurs
Les contrôleurs sont très importants dans la construction d'un plan de test JMeter en temps réel. Il définit la séquence dans laquelle les requêtes sont envoyées au serveur.
Par exemple, Si vous souhaitez tester une application Web dans laquelle vous souhaitez que la connexion se produise une seule fois et que vous effectuez une recherche, la sélection des éléments demande d'effectuer une par une pour toutes les itérations. Les contrôleurs le rendent possible en gérant le flux de requêtes allant sur le serveur sous test.
Vous trouverez ci-dessous les contrôleurs les plus couramment utilisés dans JMeter
- Contrôleur simple
- Contrôleur de module
- Un seul contrôleur
- Contrôleur d'entrelacement
- Contrôleur de boucle
- Si contrôleur
- Pour chaque contrôleur
- Contrôleur d'enregistrement et etc.,
Contrôleur simple
Le contrôleur simple n'effectue aucune fonction spécifique. C'est juste une sorte de conteneur dans lequel vous pouvez conserver vos demandes similaires pour rendre votre plan de test facilement compréhensible.
Contrôleur de boucle
Si vous souhaitez qu'une demande spécifique exécute plus d'itérations que ce qui est spécifié dans Thread Group, vous pouvez les placer sous Loop Controller et entrer le nombre de boucles dans les paramètres du contrôleur.
Exemple: Si vous avez un groupe de threads avec 1 utilisateur et 3 itérations, toutes vos demandes sous ce groupe seront exécutées 3 fois. Maintenant, si vous avez deux échantillonneurs HTTP sous un contrôleur de boucle avec un nombre de boucles de 2, ces deux échantillonneurs fonctionneraient 1 * 3 * 2 = 6 fois.
Veuillez voir les captures d'écran ci-dessous qui l'expliquent plus en détail
Un seul contrôleur
Ce contrôleur est utilisé lorsque vous souhaitez exécuter une requête spécifique une seule fois, même si vous avez plusieurs threads dans le groupe de threads. L'exemple le plus simple qui peut être considéré est «Récupérer la page d'accueil d'un site Web» ou «Se connecter à une application Web». Le scénario en temps réel voudrait que cela se produise une seule fois et que d'autres demandes telles que la recherche ou la modification / suppression de quelque chose se produisent plusieurs fois.
Les requêtes qui ne doivent être exécutées qu'une seule fois peuvent être placées sous One Only Controller. Reportez-vous à la capture d'écran ci-dessous pour votre référence. Une fois seulement les paramètres du contrôleur contournent les paramètres du groupe de threads parent.
Contrôleur d'enregistrement
Tout comme Simple Controller, Recording Controller ne modifie aucune séquence de requêtes envoyées au serveur. Il est utilisé avec l'enregistreur de script HTTP (S). Toutes les demandes qui sont enregistrées avec cet élément non test sont sauvegardées sous le contrôleur d'enregistrement.
Vous devez spécifier le contrôleur cible pour enregistrer les demandes enregistrées effectuées sur le serveur.
Le contrôleur d'enregistrement et l'enregistreur de script HTTP (s) entre en scène lorsque les testeurs ne disposent pas des informations sur les URL et les paramètres des requêtes. Ils peuvent simplement enregistrer et capturer toutes les demandes qui arrivent sur leurs serveurs. Cela fonctionne aussi bien pour les projets mobiles que pour les projets Web.
Contrôleur de débit
Ce contrôleur est également utilisé pour contrôler le flux d'exécution. Comme le montre le découpage ci-dessous, ce contrôleur est divisé en deux parties:
Exécution en pourcentage - Cette sélection fera en sorte que Jmeter n'exécute qu'un certain pourcentage du total des itérations pour les Samplers placés sous ce contrôleur. Vous pouvez également cocher la case «Par utilisateur» pour contrôler cela au niveau de l'utilisateur.
Par exemple, Le groupe de threads est configuré pour avoir 10 utilisateurs et le nombre de boucles est 5. Par conséquent, le nombre total d'itérations est de 50. Si le% d'exécution est défini sur 50%, tous les échantillonneurs sous le contrôleur de débit effectueront 25 itérations uniquement (50% de 50).
Total des exécutions - Cela permet aux utilisateurs de spécifier le nombre d'itérations directement pour les échantillonneurs contenus sous ce contrôleur.
Contrôleur d'entrelacement
Ce contrôleur vous permet d'augmenter la portée de vos tests de performances en modifiant la séquence de n nombre de façons afin que vous puissiez tester la charge sur le serveur lorsque les applications répondent à la demande avec différentes séquences. Interleave Controller effectue des sélections alternatives avec les échantillonneurs en dessous.
Dans le cas où d'autres contrôleurs comme Simple Controller sont conservés sous ce bloc, le contrôleur d'entrelacement donne le privilège de sélectionner un échantillonneur chacun à partir d'un conteneur pour chaque itération. Pour l'expliquer plus en détail, considérez le plan de test ci-dessous.
Ainsi, Jmeter effectuera une itération alternée entre les contrôleurs pour chaque itération. Par conséquent, la séquence sera mentionnée ci-dessous
Request1 -> Request3 -> Request 5 - Request2 -> Request4 -> Request6
Veuillez consulter les résultats JMeter ci-dessous avec le nombre de threads = 2 et le nombre de boucles = 2.
qu'est-ce qu'un bon téléchargeur mp3
Dans l'exemple ci-dessus, Jmeter est entrelacé avec la prochaine boucle / itération. Il existe des paramètres dans Interleave Controller qui peuvent obliger JMeter à envoyer des requêtes alternatives à chaque nouveau thread.
Veuillez voir les résultats ci-dessous. Cela est utile dans les scénarios où vous voulez des serveurs à charge séquentielle ou simultanée avec la séquence différente de la demande provenant de la même machine.
Contrôleur aléatoire
Il fonctionne presque comme le contrôleur Interleave mais ne sélectionne pas les échantillonneurs dans l'ordre. Il sélectionne simplement les sous-contrôleurs et les échantillonneurs à l'intérieur de manière aléatoire.
Si contrôleur
Si Controller fonctionne de la même manière, une expression IF est traitée dans n'importe quel langage de programmation. La condition est validée en premier, puis les composants sous ce conteneur s'exécutent si la condition est TRUE, sinon, les éléments en dehors du contrôleur IF seront exécutés.
Exemple : Poursuivant avec l'un des exemples précédents impliquant Interleave Controller, maintenant l'un des deux contrôleurs Interleave a été conservé sous le contrôleur IF et la condition «$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Définition et attribution d'une valeur à COUNT variable.
Définition de la condition dans Si contrôleur réglages. Jmeter validera cette condition et si TRUE, exécutera les blocs sous ce conteneur.
Comme vous pouvez le voir dans le plan de test ci-dessous, seules Request3, Request4 et Request5 seront exécutées si la condition IF est évaluée comme Faux .
Alors que les contrôleurs
Ce contrôleur exécute les composants sous lui jusqu'à ce que la condition devienne fausse.
Par exemple, disons que nous avons une condition while ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Configurez l'élément de configuration «Counter» pour qu'il commence à 1 puis incrémente à chaque itération. Voir ci-dessous pour plus de précisions:
Nous aborderons le reste des contrôleurs dans nos didacticiels vidéo.
Exemple en temps réel
Prenons un scénario dans lequel l'équipe de test ne connaît pas les URL et les paramètres de toutes les requêtes atteignant le serveur testé. Maintenant, pour tester la charge du serveur, ils doivent enregistrer les demandes, puis moduler la charge de manière séquentielle ou simultanée et créer des scénarios à partir d'eux pour effectuer les tests de performances.
Pas
test de services Web à l'aide des questions d'entretien de soapui
- Ajouter un modèle dans Jmeter pour le contrôleur d'enregistrement
- Définissez le proxy sur votre navigateur et choisissez le même port dans HTTP (s) Script Recorder
- Enregistrer les demandes
- Modifier le plan de test et augmenter la charge
- Regroupez les transactions en conséquence
- Essayez différentes combinaisons de demandes
Modèle d'enregistrement de JMeter
JMeter a également un modèle prédéfini. Sélectionnez l'option «Modèle» dans le menu Fichier. Après avoir sélectionné le modèle, choisissez l'option «Enregistrement» dans la fenêtre qui s'ouvre et cliquez sur Créer.
Dès que vous sélectionnez ce modèle d'enregistrement, vous verrez certains composants déjà ajoutés dans le plan de test.
- Enregistreur de script HTTP (s) sous Work Bench
- Paramètres par défaut des requêtes HTTP et gestionnaire de cookies HTTP
- Contrôleur d'enregistrement sous le groupe de threads.
Vous pouvez soit paramétrer le proxy sur votre navigateur pour parler au serveur proxy JMeter, soit utiliser CHROME Extension Blazemeter pour enregistrer les requêtes, puis exporter le fichier. jmx dans Jmeter. Il existe de nombreuses autres extensions pour enregistrer le script, puis l'exporter vers JMeter. L'outil BADBOY fonctionne également bien avec Jmeter pour enregistrer les hits Web et mobiles.
Cliquer sur. jmx pour exporter la demande enregistrée vers Jmeter. Maintenant à partir de Jmeter, ouvrez le fichier. jmx et voir les requêtes et les paramètres associés à chaque requête.
Conclusion
À l'heure actuelle, il est supposé que vous devez tous vous être familiarisé avec la logique de base de JMeter, comment il simule la charge, comment jouer avec différents types d'échantillonneurs, comment contrôler le flux d'exécution avec l'utilisation du contrôleur et l'utilisation de variables et fonctions pour exécuter les boucles à travers les itérations. Ce n'est certainement pas la fin de la série de tutoriels sur JMeter.
Il existe de nombreux tutoriels vidéo à suivre qui guidera les testeurs avec plus de mains sur différents scénarios dans Jmeter et comment chaque composant JMeter peut être utilisé de la meilleure manière.
=> Consultez la liste complète des didacticiels vidéo JMeter ici
Veuillez partager vos commentaires ou questions avec nous.
lecture recommandée
- Contrôleurs Jmeter Partie 1
- Contrôleurs Jmeter Partie 2
- Comment atteindre la corrélation JMeter avec l'exemple
- Utilisation des requêtes HTTP dans JMeter
- Travailler avec une requête FTP dans JMeter
- Utilisation du post-processeur dans JMeter (extracteur d'expressions régulières)
- Top 5 des plugins JMeter et comment les utiliser (avec des exemples)
- Minuteries JMeter: Minuterie aléatoire constante, BeanShell et Guassian