Tous les produits
Search
Centre de documentation

Performance Testing:Use CSV parameter files in JMeter

Dernière mise à jour :Aug 10, 2026

Les tests de performance nécessitent des données uniques pour chaque utilisateur virtuel : noms d'utilisateur, mots de passe ou paramètres d'API différents. Sans paramétrage, tous les utilisateurs virtuels envoient des requêtes identiques, ce qui ne reflète pas le trafic réel. L'élément CSV Data Set Config de JMeter lit des fichiers CSV externes et associe les colonnes à des variables consommées par les utilisateurs virtuels lors de l'exécution.

PTS étend cette fonctionnalité aux tests distribués : lorsqu'un test s'exécute sur plusieurs moteurs de test de charge, PTS divise le fichier CSV afin que chaque moteur reçoive un sous-ensemble de données unique, évitant ainsi la duplication des données de test entre les moteurs.

Fonctionnement de CSV Data Set Config

L'élément CSV Data Set Config est un élément de configuration JMeter qui lit les lignes d'un fichier CSV et associe chaque colonne à une variable nommée. Il convient aux scénarios nécessitant un grand nombre de variables. À chaque itération, chaque utilisateur virtuel lit la ligne suivante disponible.

Trois paramètres contrôlent la circulation des données vers les utilisateurs virtuels :

Paramètre Comportement
Sharing mode Détermine si les utilisateurs virtuels partagent un seul pointeur de lecture ou si chacun obtient une copie indépendante du fichier. Consultez la référence des paramètres ci-dessous pour plus de détails.
Recycle on EOF Lorsque la valeur est True, JMeter revient à la première ligne de données après avoir atteint la fin du fichier. Lorsque la valeur est False, les lectures suivantes renvoient des valeurs vides (sauf si Stop thread on EOF est défini sur True).
Stop thread on EOF Lorsque la valeur est True et que Recycle on EOF est False, les threads s'arrêtent après consommation de toutes les lignes. Si les deux sont définis sur False, les variables renvoient des valeurs vides, ce qui peut entraîner des échecs de test silencieux.
Si vous téléchargez un fichier CSV vers PTS sans élément CSV Data Set Config correspondant dans votre script JMeter, PTS traite le fichier comme s'il n'avait pas d'en-tête. Ajoutez toujours explicitement CSV Data Set Config pour éviter un découpage incorrect des données.

Configurer des fichiers de paramètres CSV

Cet exemple configure un test d'API de connexion avec 100 utilisateurs simultanés, chacun disposant d'identifiants uniques.

Étape 1 : Créer un fichier CSV

Créez un fichier CSV avec une ligne par utilisateur virtuel. La première ligne constitue l'en-tête, qui définit les noms des variables :

username,password
user1,Password1
user2,Password2
user3,Password3
Si votre fichier CSV ne contient pas de ligne d'en-tête, définissez manuellement les noms des variables dans CSV Data Set Config (voir l'étape 3).

Si vos données contiennent des virgules ou des guillemets, définissez Allow Quoted Data? sur True à l'étape 3. Les valeurs entre guillemets sont analysées comme suit :

Valeur brute CSV Résultat analysé
"Smith, John" Smith, John
"4""5" 4"5
simple simple

Étape 2 : Ajouter CSV Data Set Config

Dans JMeter, faites un clic droit sur Thread Group et choisissez Add > Config Element > CSV Data Set Config.

Adding CSV Data Set Config to Thread Group

Étape 3 : Configurer CSV Data Set Config

Saisissez le nom du fichier CSV dans le champ Filename. Si votre fichier CSV inclut une ligne d'en-tête, JMeter lit automatiquement la première ligne comme noms de variables.

CSV Data Set Config settings

Si votre fichier CSV ne contient pas de ligne d'en-tête, saisissez les noms des variables (par exemple, username,password ) dans le champ Variable Names (comma-delimited) .

Paramètres de CSV Data Set Config

Paramètre Description Par défaut
Filename Nom du fichier CSV. Lors du téléchargement vers PTS, utilisez uniquement le nom du fichier (sans chemin). Requis
File Encoding Encodage de caractères du fichier. Laissez vide pour utiliser la valeur par défaut de la plateforme. Valeur par défaut de la plateforme
Variable Names (comma-delimited) Liste de noms de variables séparés par des virgules. Laissez vide si la première ligne est un en-tête. Ligne d'en-tête
Delimiter Caractère qui sépare les valeurs dans chaque ligne. , (virgule)
Allow Quoted Data? Définissez sur True si les valeurs contiennent des virgules ou des guillemets (par exemple, "Smith, John"). False
Recycle on EOF? Lorsque la valeur est True, JMeter revient à la première ligne de données après avoir atteint la fin du fichier. Lorsque la valeur est False, les lectures suivantes dépendent de Stop thread on EOF. True
Stop thread on EOF? Lorsque la valeur est True et que Recycle on EOF est False, les threads s'arrêtent après consommation de toutes les lignes. Si les deux sont définis sur False, les variables renvoient des valeurs vides, ce qui peut entraîner des échecs de test silencieux. False
Sharing mode Contrôle le partage des données entre les threads. All threads : un seul pointeur de lecture partagé entre tous les groupes de threads. Current thread group : partagé uniquement au sein du groupe. Current thread : chaque thread obtient sa propre copie indépendante du fichier. All threads

Exemple de comportement du mode de partage (avec un fichier CSV contenant login1, login2) :

Itération **All threads (VU 1 / VU 2)** **Current thread (VU 1 / VU 2)**
1 login1 / login2 login1 / login1
2 login1 / login2 login2 / login2
  • Utilisez All threads (par défaut) lorsque chaque utilisateur virtuel a besoin de données uniques (par exemple, des identifiants de connexion uniques).

  • Utilisez Current thread lorsque chaque utilisateur virtuel doit lire l'ensemble de données complet de manière indépendante.

Étape 4 : Référencer les variables CSV dans la requête HTTP

Faites un clic droit sur le groupe de threads et choisissez Add > Sampler > HTTP Request. Configurez les champs suivants en fonction de votre API :

  • Name : Nom descriptif de l'API (par exemple, Login API).

  • Web Server : Protocole, nom d'hôte ou adresse IP, et numéro de port.

  • HTTP Request : Méthode HTTP (GET, POST, etc.) et chemin.

  • Onglet Body Data : Référencez les variables CSV avec ${username} et ${password}.

HTTP Request Sampler configuration

Étape 5 : Enregistrer et télécharger vers PTS

  1. Enregistrez le script de test JMeter.

  2. Téléchargez le script de test et le fichier CSV vers PTS. Pour plus de détails, consultez Créer un scénario JMeter.

Diviser les fichiers CSV entre les moteurs de test de charge

Lorsqu'un test s'exécute sur plusieurs moteurs de test de charge, chaque moteur charge indépendamment le fichier CSV complet et commence la lecture à partir de la ligne 1. Sans division, les utilisateurs virtuels sur différents moteurs consomment des données identiques, ce qui invalide les tests nécessitant des valeurs uniques par utilisateur (par exemple, des identifiants de connexion ou des ID de commande).

La division distribue les lignes CSV entre les moteurs afin que chaque moteur reçoive un sous-ensemble unique. C'est le seul moyen de garantir l'unicité des données dans les tests distribués, car JMeter attribue les valeurs au niveau du moteur.

Sélectionnez Split File à côté du fichier CSV sur la page de configuration du scénario PTS.

Split File option

Diviser des fichiers avec lignes d'en-tête

Lorsque le fichier CSV inclut une ligne d'en-tête, chaque fichier divisé conserve l'en-tête intact. Les lignes de données sont distribuées sans duplication. Si les lignes ne peuvent pas être divisées équitablement, certains moteurs recevront une ligne supplémentaire.

Par exemple, la division du fichier exemple entre deux moteurs produit :

Moteur 1 :

username,password
user1,Password1
user3,Password3

Moteur 2 :

username,password
user2,Password2

Diviser des fichiers sans lignes d'en-tête

Pour les fichiers CSV sans ligne d'en-tête (par exemple, un fichier nommé b.csv) :

user1,Password1
user2,Password2
user3,Password3

Définissez les noms des variables dans CSV Data Set Config au lieu de compter sur l'en-tête :

Variable names for headerless CSV

Lors de la division, chaque fichier résultant ne contient que des lignes de données (pas d'en-tête). La même règle de distribution équitable s'applique : certains moteurs peuvent recevoir une ligne supplémentaire.

Moteur 1 :

user1,Password1
user3,Password3

Moteur 2 :

user2,Password2

Étapes suivantes