web-dev-qa-db-fra.com

Dans Jmeter, quelle serait la syntaxe des paramètres dans la section Body Data de HTTP Request Sampler, si j'utilise des API Rest et que je saisis des données à partir de fichiers CSV?

J'essaie de créer 10 utilisateurs en même temps dans Jmeter, en utilisant REST. Les données de test, c'est-à-dire que les données sont extraites des fichiers CSV (Les détails des utilisateurs comme le nom d'utilisateur, le nom de famille, le mobile)

Pour cela, j'ai ajouté un groupe de threads, une variable définie par l'utilisateur, un gestionnaire d'en-tête HTTP, un échantillonneur de requêtes HTTP (qui effectue une connexion réussie dans l'application Web), JSON PATH EXTRACTOR (pour extraire le jeton d'authentification, qui sera utilisé lors de l'ajout d'un utilisateur)

Pour ajouter un utilisateur, j'ai utilisé un "Loop Controller" - "HTTP Request Sampler" - HTTP Header Manager, CSV Data Set Config.

Et pour suivre les résultats, afficher l'arborescence des résultats et le rapport agrégé.

Veuillez me dire quelle serait la syntaxe des paramètres que je passe dans la section "Body Data" de l'échantillonneur de requête HTTP, afin qu'il puisse lire les valeurs des fichiers csv.

Voici la syntaxe que j'utilise maintenant pour ajouter un seul utilisateur.

{
  "phoneNo": "9998885551",
  "lastName": "john25",
  "email": "[email protected]",
  "firstName": "ricky25",
  "mobileNo": "9820420420"
}
21
abhishek

Si votre fichier CSV ressemble à:

9998885551,john25,[email protected],ricky25,9820420420
9998885552,john26,[email protected],ricky26,9820420421
....

La configuration doit être la suivante:

  • Nom de fichier: chemin d'accès complet à votre fichier .csv source
  • Noms de variables: phone,lastname,email,firstname,mobile
  • Délimiteur: ,

Remplissez d'autres valeurs en fonction de votre scénario de test, c'est-à-dire si vous souhaitez que le test s'arrête à la fin du fichier .csv ou recommence la rotation ou autre.

CSV Config

Et votre requête HTTP devrait ressembler à:

Using CSV Variables in HTTP Request

Le point principal est que les variables définies dans la configuration de l'ensemble de données CSV doivent correspondre à celles de la requête HTTP.

Voir tilisation de CSV DATA SET CONFIG guide pour des instructions détaillées.

Je recommanderais également d'ajouter l'entrée suivante à votre gestionnaire d'en-tête HTTP:

  • Prénom: Content-Type
  • Valeur: application/json

sinon, votre demande sera traitée comme du texte brut et pourrait échouer.

N'oubliez pas non plus de désactiver l'écouteur View Results Tree pour le test de charge réel car il consomme beaucoup de ressources et peut entraîner des erreurs de mémoire insuffisante du côté de JMeter.

50
Dmitri T

De plus, si vos données formparam\Body contiennent plusieurs paramètres comme celui-ci:

UserName=abc password=abc123,

Au lieu de créer deux colonnes pour le nom d'utilisateur et le mot de passe, il peut être donné dans une seule colonne comme ceci:

UserName=abc&password=abc123

De cette façon, vous pouvez parcourir plusieurs URL différentes\qui prennent différents nombres de bodydata

Par exemple: si URL1 prend uniquement le nom d'utilisateur comme données corporelles et URL2 prend le nom d'utilisateur et le mot de passe comme données corporelles, ce qui précède sera une solution facile.

3
JmeterQuestion