Qu'est-ce que le contrôleur logique?
Les contrôleurs logiques vous permettent de définir l'ordre de traitement de la demande dans un thread. Il vous permet de contrôler "quand" pour 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 contrôleurs logiques déterminent l'ordre dans lequel la demande utilisateur est exécutée.
Voici quelques contrôleurs logiques couramment utilisés:
Contrôleur d'enregistrement:
JMeter peut enregistrer vos étapes de test; 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 conteneur pour la demande de l'utilisateur.
Contrôleur de boucle:
Le contrôleur de boucle permet à la demande de l'utilisateur d'exécuter un nombre spécifié de fois ou de s'exécuter indéfiniment, comme illustré dans la figure:
Contrôleur aléatoire:
Random Controller exécute toutes les demandes des utilisateurs dans un ordre aléatoire à chaque période de boucle.
Par exemple, vous avez 3 demandes d'utilisateurs sur le site Web http://www.google.com dans l'ordre suivant:
- Requête HTTP
- Demande 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.
Dans un ordre séquentiel , les demandes sont envoyées séquentiellement dans l'ordre suivant:
Requête HTTP -> Requête FTP-> Requête JDBC
pour chaque boucle.
Dans un ordre aléatoire , les demandes sont envoyées de manière aléatoire,
Requête FTP -> Requête HTTP-> Requête JDBC
Ou
Requête JDBC -> Requête FTP-> Requête HTTP
Pour chaque boucle.
Contrôleur de module:
Le but 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éer un compte, Déconnexion…). Cette fonctionnalité peut être stockée dans Simple Controller en tant que "modules". Le contrôleur de module choisira le module à exécuter.
Considérez le scénario suivant -
Vous souhaitez simuler:
- 50 utilisateurs se déconnectent ,
- 100 utilisateurs se connectent
- 30 utilisateurs recherchent sur 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 le module à exécuter.
Autres contrôleurs importants:
- Interleave Controller: prend et exécute une des requêtes utilisateur dans chaque boucle du thread.
- Contrôleur d' exécution : contrôle la durée pendant laquelle ses enfants sont autorisés à s'exécuter.
Par exemple, si vous avez spécifié Runtime Controller 10 secondes, JMeter exécutera votre test pendant 10 secondes.
- Transaction Controller: mesure le temps global nécessaire pour terminer une exécution de test
- Inclure le 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 les détails dans JMeter Performance Testing.
Exemple de contrôleur de boucle
Cette section vous montre des instructions pas à pas pour ajouter un jeu de contrôleurs de boucle à votre plan de test de performances actuel.
Le contrôleur de boucle fait exécuter 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
- Ajouter une requête HTTP à un contrôleur de boucle avec un nombre de boucles 50
- Configurez le nombre de boucles du groupe de threads sur 2
- Ensuite, JMeter enverra un total de 50 * 2 = 100 requêtes HTTP.
Voici la feuille de route de cet exemple:
Étape 1) Configuration du groupe de threads
Nous réutilisons les étapes 1 et 2 du didacticiel JMeter Performance Testing.
-
Ajouter un groupe de threads
Faites un clic droit sur le plan de test et ajoutez un nouveau groupe de threads: Ajouter -> Threads (utilisateurs) -> Thread Group
Mais dans le panneau de configuration du groupe de threads, entrez les propriétés de thread comme suit:
Il fera une demande d'utilisateur au serveur Web google.com et l'exécutera 2 fois.
-
Ajouter des éléments JMeter
Ajoutez la requête HTTP par défaut à www.google.com.
-
Ajout d'un contrôleur de boucle
Groupe de threads de clic droit -> Contrôleur logique -> Contrôleur de boucle
Étape 2) Configuration du contrôleur de boucle
Ajoutez la valeur 50 au champ Loop Count comme ci-dessous. Il fera une demande utilisateur au serveur Web google.com l'exécutera 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 donc un total de 2 * 50 = 100 requêtes HTTP.
Cliquez avec le bouton droit sur Loop Controller, Add -> Sampler -> HTTP request
Étape 3) Ajouter les résultats de la vue dans le tableau
Nous réutilisons l'étape 2 de la minuterie pour ajouter Afficher les résultats dans le tableau
Ainsi, le plan de test est illustré dans la figure ci-dessous
Étape 4) Exécutez votre test
Maintenant, revenez 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 utilisateur, qui est envoyée 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.
- Ouvrez une nouvelle instance de Jmeter
- Ouvrez le ControllerTestPlan.jmx dans Jmeter
- Cliquez sur Thread Group -> View Result in Table
- Exécutez le test