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.

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

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 threadlorsque 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}.

Étape 5 : Enregistrer et télécharger vers PTS
Enregistrez le script de test JMeter.
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.

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 :

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