Apache JMeter
Paramétrage d'Apache JMeter
Recherche…
Introduction
Le paramétrage est la création de différents jeux de données pour différents utilisateurs dans le même script de test. Par exemple, exécuter plusieurs utilisateurs avec des informations d'identification différentes dans le même script. Cela en fait l'un des principaux aspects de la création de tests de performance.
Paramétrage à l'aide de fichiers externes
Une des façons les plus courantes de paramétrer vos scripts de performance consiste à utiliser un fichier CSV. Le meilleur exemple d'utilisation des fichiers d'entrée CSV est un processus de connexion. Si vous souhaitez tester votre application sur différents utilisateurs, vous devez fournir une liste des informations d'identification de l'utilisateur.
Supposons que nous ayons une demande de connexion qui fonctionne pour un utilisateur spécifique:
Nous pouvons facilement paramétrer cette requête en utilisant un fichier CSV externe et en exécutant le script sur différents utilisateurs. Pour ajouter une configuration de paramétrage CSV:
Faites un clic droit sur la demande de connexion -> Ajouter -> Elément de configuration -> Config.
Une brève explication des paramètres 'CSV Data Set Config':
- Name - nom de l'élément tel qu'il sera utilisé dans l'arborescence JMeter
- Nom de fichier - nom du fichier d'entrée. Les noms de fichiers relatifs sont résolus en fonction du chemin du plan de test actif. Les noms de fichiers absolus sont également supportés
- File Encoding - encodage du fichier d'entrée, si ce n'est pas la plateforme par défaut
- Noms de variables - liste des noms de variables séparés qui seront utilisés comme conteneur pour les valeurs analysées. Si vide, la première ligne du fichier sera interprétée comme la liste des noms de variables
- Delimiter - délimiteur qui sera utilisé pour séparer les valeurs analysées du fichier d'entrée
- Autoriser les données cotées? - true si vous souhaitez ignorer les guillemets et permettre à de tels éléments de contenir un délimiteur.
- Recycler sur EOF? - true au cas où le plan de test du fichier devrait parcourir le fichier plus d'une fois. Il demandera à JMeter de déplacer le curseur au début du fichier
- Arrêter le fil sur EOF? - false en cas d'itération de boucle sur le fichier CDC et true si vous souhaitez arrêter le thread après avoir lu l'intégralité du fichier
- Mode de partage:
- Tous les threads - le fichier est partagé entre tous les utilisateurs virtuels (par défaut)
- Groupe de threads actuel - le fichier sera ouvert une fois pour chaque groupe de threads
- Fil actuel - chaque fichier sera ouvert séparément pour chacun des threads
- Identifiant - tous les threads partageant le même identifiant partagent également le même fichier
Créons un fichier csv contenant différents utilisateurs avec des noms et des mots de passe:
Nous pouvons maintenant utiliser ce fichier avec la configuration CSV Data Set. Dans notre cas, il suffit d'ajouter les valeurs de configuration «Filename» et «Variables Names»:
La dernière étape consiste à paramétrer la demande de connexion avec des variables CSV. Cela peut être fait en substituant les valeurs initiales aux variables appropriées du champ de configuration «Noms de variables» de la configuration de fichier CSV, comme ceci: Si nous exécutons notre script de test maintenant, JMeter substituera ces variables aux valeurs du fichier 'TestUsers.csv'. Chaque utilisateur virtuel JMeter recevra des informations d'identification à partir de la ligne de fichier csv suivante.
La demande de connexion par le premier utilisateur:
La demande de connexion par le deuxième utilisateur:
Paramétrage à l'aide de bases de données
Une autre façon de paramétrer vos scripts de performances consiste à utiliser les données de base de données via JDBC. JDBC est une interface de programmation d'application qui définit comment un client peut accéder à une base de données.
Tout d'abord, téléchargez le pilote JDBC dans votre base de données (reportez-vous au fournisseur de la base de données). Par exemple, le pilote mysql peut être trouvé ici. Ensuite, vous pouvez l'ajouter en ajoutant le fichier .jar au plan de test en utilisant le formulaire ci-dessous:
Mais il est préférable d'ajouter le fichier Jar dans le dossier lib et de redémarrer JMeter.
Après cela, configurez la connexion à la base de données en utilisant l'élément «JDBC Connection Configuration». Comme ceci: Faites un clic droit sur Thread Group -> Add -> Config Element -> Configuration de la connexion JDBC
Paramètres de configuration de la connexion JDBC:
- Nom - nom de la configuration de connexion qui sera affichée dans l'arborescence du groupe de threads
- Nom de la variable - nom qui sera utilisé comme identifiant unique pour la connexion à la base de données (plusieurs connexions peuvent être utilisées et chacune sera associée à un nom différent)
- Nombre maximal de connexions: nombre maximal de connexions autorisées dans le pool de connexions. En cas de 0, chaque thread aura son propre pool avec une seule connexion.
- Max Wait (ms) - Le pool génère une erreur si le délai spécifié est dépassé lors de la connexion à la base de données
- Time Between Eviction Runs (ms) - nombre de millisecondes à mettre en pause entre les exécutions du thread expulsant les connexions inutilisées du pool de bases de données
- Auto Commit - yes pour activer la validation automatique pour les connexions db associées
- Test While Idle - Vérifiez les connexions inactives avant qu'une demande effective ne soit détectée. Plus de détails: BasicDataSource.html # getTestWhileIdle
- Soft Min Evictable Idle Time (ms) - période de temps pendant laquelle une connexion spécifiée peut être inactive dans le pool de bases de données avant de pouvoir être expulsée. Plus de détails: BasicDataSource.html # getSoftMinEvictableIdleTimeMillis
- Validation Query - requête de vérification de santé qui sera utilisée pour vérifier si la base de données répond toujours
- Database URL - Chaîne de connexion JDBC pour la base de données. Voir ici pour des exemples
- Classe de pilote JDBC: nom approprié de la classe de pilote (spécifique à chaque base de données). Par exemple, «com.mysql.jdbc.Driver» pour la base de données MySql
- Nom d'utilisateur - nom d'utilisateur de la base de données
- Mot de passe - mot de passe de la base de données (sera stocké en clair dans le plan de test)
Dans notre cas, nous devons configurer les champs obligatoires uniquement:
- Nom de variable lié au pool.
- URL de la base de données
- Classe de pilote JDBC
- Nom d'utilisateur
- Mot de passe
Les autres champs de l'écran peuvent être laissés comme paramètres par défaut:
Supposons que nous stockions les informations d'identification de l'utilisateur de test dans la base de données:
Maintenant, lorsque la connexion à la base de données est configurée, nous pouvons ajouter la demande JDBC elle-même et utiliser sa requête pour obtenir toutes les informations d'identification de la base de données: Cliquez avec le bouton droit sur Thread Group -> Add -> Sample -> JDBC Request
En utilisant la requête "Select Statement" et les "Noms de variables", nous pouvons analyser la réponse aux variables personnalisées.
Nous aurons maintenant des variables JMeter qui pourront être utilisées dans les requêtes suivantes. Les variables spécifiées seront créées avec un suffixe incrémentiel (email_1, email_2, email_3… ..).
Pour utiliser ces variables dans la demande de connexion, nous devons ajouter un compteur qui sera utilisé pour accéder aux bonnes valeurs de la réponse à la requête JDBC. Pour ajouter l'élément 'Counter' dans JMeter: Faites un clic droit sur Thread Group -> Add -> Config Element -> Counter
Après cela, nous pouvons mettre à jour la demande de connexion en utilisant la fonction __V. Cela renvoie le résultat de l'évaluation d'une expression de nom de variable et peut être utilisé pour évaluer les références de variables imbriquées:
La configuration spécifiée est suffisante pour utiliser les valeurs de base de données pour exécuter le script sur différents utilisateurs:
Paramétrage à l'aide du plugin 'Parameterized Controller'
Si vous devez exécuter une séquence répétée de la même action avec des paramètres différents, utilisez le plug - in tiers "Parameterized Controller" du projet JMeter-Plugins .
Vous devez d'abord installer ce plugin en suivant la procédure d'installation.
Supposons que nous souhaitons paramétrer le workflow de connexion:
Tout d'abord, vous devez installer le plug-in "Parameterized Controller" car il n'est pas inclus dans le core JMeter. Les étapes d'installation de ce processus peuvent être trouvées ici.
Déplaçons la "Demande de connexion" dans un contrôleur distinct et désactivez-la (cliquez avec le bouton droit de la souris et sélectionnez "Désactiver"). C'est le moyen le plus préférable d'avoir un conteneur de modules dans votre plan de test et d'éviter d'utiliser Workbench en tant que tel. Une fois l'installation terminée, vous pouvez ajouter deux contrôleurs "Contrôleurs paramétrés" avec des informations d'identification utilisateur différentes: Cliquez avec le bouton droit sur Groupe de threads -> Ajouter -> Contrôleur logique -> Contrôleur paramétré
Les contrôleurs paramétrés contiennent la section "Variables définies par l'utilisateur" dans laquelle vous pouvez spécifier vos paramètres. Placez les informations d'identification du premier utilisateur dans le premier contrôleur paramétré et les deuxièmes informations d'identification de l'utilisateur dans le second contrôleur paramétré.
À l’intérieur des deux contrôleurs paramétrés, ajoutez des références au «contrôleur réutilisable» pour appeler la «demande de connexion» avec différents paramètres. Cela peut être fait de cette façon:
Faites un clic droit sur 'Contrôleur paramétré' -> 'Ajouter' -> 'Contrôleur logique' -> 'Contrôleur de module'
Lors de l'exécution de votre script, vous verrez que la «demande de connexion» a déclenché séparément chacun des contrôleurs paramétrés. Cela peut être très utile si vous devez exécuter votre script sur différentes combinaisons de paramètres d'entrée.