Contrôleurs dans JMeter: Boucle, Simple, Transaction, Module, Aléatoire
Qu’est-ce que le Logic Controller ?
Les Logic Controllers vous permettent de définir l’ordre de traitement des requêtes dans un thread. Il vous permet de contrôler « quand » envoyer une demande utilisateur à un serveur Web. Par exemple, vous pouvez utiliser des contrôleurs aléatoires pour envoyer des requêtes HTTP au serveur de manière aléatoire.
Les Logic Controllers déterminent l'ordre dans lequel la demande de l'utilisateur est exécutée.
Certains contrôleurs logiques couramment utilisés sont ci-dessous :
Contrôleur d'enregistrement
JMeter Vous pouvez record votre USP,EP, BP pas; un contrôleur d'enregistrement est un espace réservé pour stocker ces étapes d’enregistrement.
Contrôleur simple
Simple Controller n'est qu'un CONTENANT pour la demande de l'utilisateur.
Contrôleur de boucle
Loop Controller exécute la demande de l'utilisateur un nombre de fois spécifié ou courir toujours comme le montre la figure :
Contrôleur aléatoire
Random Controller exécute toutes les requêtes des utilisateurs le hasard ordre dans chaque période de boucle.
Par exemple, vous avez 3 requêtes d'utilisateurs sur le site Web http://www.google.com dans l'ordre suivant :
- Requête HTTP
- Requête FTP
- Requête JDBC
Ces 3 requêtes doivent être exécutées 5 fois. Au total, 15 demandes d'utilisateurs seront envoyées au serveur Google par JMeter.
In séquentiel commande, les demandes sont envoyées séquentiellement dans l'ordre suivant :
Requête HTTP -> Requête FTP -> Requête JDBC
pour chaque boucle.
In aléatoire commande, les demandes sont envoyées comme au hasard,
Requête FTP -> Requête HTTP -> Requête JDBC
Or
Requête JDBC ->Requête FTP->Requête HTTP
Pour chaque boucle.
Contrôleur de modules
L'objectif de Module Controller est d'ajouter de la modularité à JMeter.
L'idée générale est que les applications Web sont constituées de petites unités de fonctionnalités (c'est-à-dire Connexion, Création de compte, Déconnexion…). Cette fonctionnalité peut être stockée dans Contrôleur simple comme « modules ». Module Controller choisira quel module doit être exécuté.
Considérez le scénario suivant -
Vous souhaitez simuler :
- 50 utilisateurs déconnecter,
- 100 utilisateurs se connecter
- 30 utilisateurs recherche www.google.com
Vous pouvez utiliser JMeter pour créer 3 modules. Chaque module simule chaque activité utilisateur : connexion, déconnexion et recherche.
Le contrôleur de module choisit quel module doit être exécuté.
Autres contrôleurs importants
- Interleave Contrôleur : décroche et fabrique UN de requête utilisateur exécutée dans chacun boucle du fil.
- Runtime Contrôleur : contrôles combien de temps ses enfants sont autorisés à courir.
Par exemple, si vous avez spécifié Runtime Controller 10 secondes, JMeter exécutera votre test pendant 10 secondes.
- Transaction Contrôleur : mesure le temps total pris à finition une exécution de test
- Inclure Contrôleur : est conçu pour utiliser un plan de test externe. Ce contrôleur vous permet d'utiliser plusieurs plans de test dans JMeter. Voir le détail dans JMeter Test de performance.
Exemple de contrôleur de boucle
Cette section vous montre des instructions étape par étape pour ajouter Contrôleur de boucle défini sur votre plan de test de performances actuel.
Le contrôleur de boucle fait fonctionner les échantillonneurs un certain nombre de fois, en plus de la valeur de boucle que vous avez spécifiée pour le groupe de threads. Par exemple, si vous
- Ajoutez une requête HTTP à un contrôleur de boucle avec un nombre de boucles de 50
- Configurez le nombre de boucles du groupe de threads sur 2
- Puis, JMeter enverra un total de 50 * 2 = 100 requêtes HTTP.
Il s'agit de la feuille de route de cet exemple :
Étape 1) Configuration du groupe de threads
We réutilisation les étapes 1, 2 du didacticiel JMeter Test de performance.
-
Ajouter un groupe de discussions
Faites un clic droit sur l' Plan de test et ajoutez un nouveau groupe de threads : Ajoutez des effets de -> Sujets (utilisateurs) ->Groupe de discussion
Mais dans le panneau de configuration du groupe de threads, entrez les propriétés du fil comme suit :
Cela fera UN demande de l'utilisateur au serveur Web google.com et exécutez-le 2 fois.
-
Ajoutez des effets de JMeter éléments
Ajoutez la requête HTTP par défaut à www.google.com.
-
Ajout d'un contrôleur de boucle
Clic droit sur Groupe de threads -> Logic Controller -> Contrôleur de boucle
Étape 2) Configuration du contrôleur de boucle
Ajoutez la valeur 50 au champ Nombre de boucles comme dans la figure ci-dessous. Cela fera UN demande de l'utilisateur au serveur Web google.com exécuter 50 fois, en plus de la valeur de boucle =2, que vous avez spécifiée pour le groupe de threads ci-dessus. JMeter enverra un total de 2 * 50 = 100 Requêtes HTTP.
Faites un clic droit sur Loop Controller, Ajouter -> Sampler -> Requête HTTP
Étape 3) Ajouter les résultats de la vue dans le tableau
Nous réutilisons l'étape 2 dans Minuteur pour ajouter Afficher les résultats dans le tableau
Le plan de test est donc présenté dans la figure ci-dessous
Étape 4) Exécutez votre test
Revenez maintenant Afficher les résultats dans le tableau, cliquez sur le bouton Démarrer dans la barre de menu (Ctrl+R) pour exécuter un test
Comme le montre la figure ci-dessous, JMeter simule une demande d'utilisateur, qui est envoyé 100 fois au serveur Web http://www.google.com/. Le test est arrêté après qu'une demande utilisateur a été envoyée 100 fois.
Dépannage
- Si vous rencontrez le problème lors de l’exécution du scénario ci-dessus… procédez comme suit
- Vérifiez si vous vous connectez à Internet via un proxy. Si oui, supprimez le proxy.
- Ouvrir une nouvelle instance de Jmeter
- Ouvrez le ContrôleurTestPlan.jmx dans Jmètre
- Cliquez sur Groupe de discussions -> Afficher le résultat dans le tableau
- Exécutez le test