webentwicklung-frage-antwort-db.com.de

Was wäre in Jmeter die Syntax der Parameter im Abschnitt "Body Data" des HTTP-Anforderungs-Samplers, wenn ich Rest-APIs verwende und Eingaben aus CSV-Dateien entgegennehme?

Ich versuche, 10 Benutzer gleichzeitig in Jmeter zu erstellen, indem ich REST APIs) verwende. Testdaten, d. H. Eingaben werden aus CSV-Dateien entnommen. (Die Details von Benutzern wie Benutzername, Nachname, Mobiltelefon)

Dazu habe ich eine Thread-Gruppe hinzugefügt: Benutzerdefinierte Variable, HTTP-Header-Manager, HTTP-Anforderungs-Sampler (für die erfolgreiche Anmeldung bei der Webanwendung), JSON-PATH-EXTRAKTOR (zum Extrahieren des Authentifizierungstokens, das beim Hinzufügen des Benutzers verwendet wird).

Um einen Benutzer hinzuzufügen, habe ich einen "Loop Controller" - "HTTP Request Sampler" - HTTP Header Manager, CSV Data Set Config verwendet.

Um das Ergebnis zu verfolgen, können Sie den Ergebnisbaum und den Gesamtbericht anzeigen.

Bitte teilen Sie mir die Syntax der Parameter mit, die ich im Abschnitt "Body Data" des HTTP Request-Samplers übergebe, damit Werte aus CSV-Dateien gelesen werden können.

Unten ist die Syntax, die ich jetzt verwende, um einen einzelnen Benutzer hinzuzufügen.

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

Wenn Ihre CSV-Datei so aussieht:

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

Die Konfiguration sollte wie folgt aussehen:

  • Dateiname: vollständiger Pfad zu Ihrer CSV-Quelldatei
  • Variablennamen: phone,lastname,email,firstname,mobile
  • Trennzeichen: ,

Füllen Sie andere Werte entsprechend Ihrem Testszenario aus, z. B. ob der Test am Ende der CSV-Datei oder beim erneuten Drehen oder was auch immer beendet werden soll.

CSV Config

Und Ihre HTTP-Anfrage sollte so aussehen:

Using CSV Variables in HTTP Request

Der wichtigste Punkt ist, dass die in der CSV-Datensatzkonfiguration definierten Variablen mit denen in der HTTP-Anforderung übereinstimmen müssen.

Ausführliche Anweisungen finden Sie in der Anleitung Verwenden von CSV DATA SET CONFIG .

Ich würde auch empfehlen, den folgenden Eintrag zu Ihrem HTTP-Header-Manager hinzuzufügen:

  • Name: Content-Type
  • Wert: application/json

andernfalls wird Ihre Anfrage wie normaler Text behandelt und kann fehlschlagen.

Vergessen Sie auch nicht, den Listener "Ergebnisbaum anzeigen" für den tatsächlichen Auslastungstestlauf zu deaktivieren, da er viel Ressourcen verbraucht und möglicherweise zu Fehlern aufgrund von Speichermangel auf der JMeter-Seite führt.

50
Dmitri T

Auch wenn Ihre Formparam\Body-Daten mehrere Parameter wie folgt enthalten:

UserName=abc password=abc123,

Anstatt zwei Spalten für Benutzername und Kennwort zu erstellen, kann diese wie folgt in einer einzelnen Spalte angegeben werden:

UserName=abc&password=abc123

Auf diese Weise können Sie mehrere\verschiedene URLs durchlaufen, die eine unterschiedliche Anzahl von Bodydaten enthalten

Zum Beispiel: Wenn URL1 nur den Benutzernamen als Körperdaten und URL2 den Benutzernamen und das Passwort als Körperdaten verwendet, ist dies eine einfache Lösung.

3
JmeterQuestion