Comment effectuer une requête HTTP PUT en lisant les valeurs de CSV dans JMeter?
J'ai une question: comment puis-je configurer l'échantillonneur de requête HTTP pour la méthode HTTP PUT dans JMeter afin qu'il puisse lire les données d'un fichier CSV à l'aide de CSV Data Set Config? Dans mon scénario, j'utilise ** Groupe de threads de concurrence ** avec les paramètres suivants: * ** Concurrence cible **: 50 * RampUp ** Time ** (** secs **): 10 * RampUp Steps ** count **: 5 * Tenir la cible .. (** s **): 10
Voici ma configuration de configuration d' ensemble de données CSV :

(Java) Les types de noms de variables sont: bookId: Long , title: String , price: double , amount: int , auteurs: Set , categories: Set , isDeleted: boolean
Voici ma configuration d' échantillonneur de requête HTTP :

... et ceci est le contenu de mon fichier bookCollection10Items.csv où les valeurs entre guillemets sont des chaînes et celles entre crochets angulaires [] sont des tableaux de valeurs (lorsque je mets à jour Book qui a une relation plusieurs-à-plusieurs avec les catégories / auteurs ):
1, «Harry Potter et la pierre magique», 39,99,2500, [4], 7,11, faux
2, «Meurtre sur l'Orient Express», [19,98,500500], 1,9, faux
3, «Le meurtre de Roger Ackroyd ", 19.99,1500,1, [7,9], faux
4," Harry Potter et la chambre des secrets ", 24.99,0,4, [7,9], vrai
5," Harry Potter et le prisonnier of Azkaban ", 17.99,1200,4,7, false
6," The Da Vinci Code ", 29.99,700,8,10, false
7," Inferno ", 22.50,950,8,10, false
11," War and Peace ", 31.99,300,5,8, false
14," The Trial ", 27.99,450,6,9, false
15," IT ", 16.50,0,2,5, true
Ce que je veux réaliser, c'est que chaque thread (c'est-à-dire utilisateur) sélectionne un élément du fichier «bookCollection10Items.csv» de manière circulaire et le mette à jour pour un bookId donné en utilisant «Tous les threads» comme option de mode de partage .
Tout conseil / suggestion est grandement apprécié.
Réponses
La configuration de l'ensemble de données CSV intégrée à JMeter lit les lignes du fichier CSV séquentiellement afin que chaque utilisateur obtienne la ligne suivante à chaque itération.
Si vous avez besoin de lire une ligne aléatoire (mais je ne pense pas que ce soit une bonne idée car je pense que les tests doivent être répétables ), vous devrez opter pour des plugins tels que:
- Configuration de l'ensemble de données CSV aléatoire
- ou HTTP Simple Table Server
Les deux peuvent être installés à l'aide de JMeter Plugins Manager
J'ai réussi à trouver une solution à mon problème -> J'ai fait une erreur en:
1) En créant un fichier CSV dans gEdit (l'équivalent Linux de Windows Notepad) au lieu d'utiliser LibreOffice Calc où le travail est effectué dans des cellules . Par conséquent, de cette façon (à la fois dans gEdit et LibreOffice Calc ):
3, "Le meurtre de Roger Ackroyd", 19.99,1500,1, [7,9], faux
... est un non-non.
2) Suppression des crochets angulaires [] de la liste afin que les tableaux ne contiennent PAS de tableaux. Par exemple, lorsque des crochets angulaires sont présents, j'obtiens ceci:
{
// some other fields
"authors" : [[7,9]]
}
3) J'ai dû formater correctement les nombres avec des décimales pour contenir un point , PAS une virgule ( problèmes de locale ). Par exemple, le bon format est 19,99, le mauvais format 19,99