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 :

Le contrôleur logique

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 d'enregistrement

Contrôleur simple

Simple Controller n'est qu'un CONTENANT pour la demande de l'utilisateur.

Contrôleur simple

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 de boucle

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 :

  1. Requête HTTP
  2. Requête FTP
  3. 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.

Contrôleur aléatoire

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é.

Contrôleur de modules

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.

Contrôleur de modules

Le contrôleur de module choisit quel module doit être exécuté.

Contrôleur de modules

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.

Autres contrôleurs importants

  • 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 :

Exemple de contrôleur de boucle

Étape 1) Configuration du groupe de threads

We réutilisation les étapes 1, 2 du didacticiel JMeter Test de performance.

  1. 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 :

Ajouter un groupe de discussions

Cela fera UN demande de l'utilisateur au serveur Web google.com et exécutez-le 2 fois.

  1. Ajoutez des effets de JMeter éléments

Ajoutez la requête HTTP par défaut à www.google.com.

  1. Ajout d'un contrôleur de boucle

Clic droit sur Groupe de threads -> Logic Controller -> Contrôleur de boucle

Ajout d'un 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.

Configuration du contrôleur de boucle

Faites un clic droit sur Loop Controller, Ajouter -> Sampler -> Requête HTTP

Configuration du contrôleur de boucle

É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

Ajouter les résultats de la vue dans le tableau

É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.

Exécutez le test

Dépannage

  1. Si vous rencontrez le problème lors de l’exécution du scénario ci-dessus… procédez comme suit
  2. Vérifiez si vous vous connectez à Internet via un proxy. Si oui, supprimez le proxy.
  3. Ouvrir une nouvelle instance de Jmeter
  4. Ouvrez le ContrôleurTestPlan.jmx dans Jmètre
  5. Cliquez sur Groupe de discussions -> Afficher le résultat dans le tableau
  6. Exécutez le test