2017-02-10 3 views
1

Ich versuche, den extrahierten Wert in Body Data einer anderen Anfrage zu verwenden. Ich extrahiert den Wert wie JSON Pfad Extractor unterjmeter - wie extrahierten Wert aus der Antwort in Body-Daten einer anderen Anfrage verwenden

enter image description here

Wert aus der unten Antwort extrahiert enter image description here

Ich benutzte es, wie dies in Körperdaten

{ 
    "TransactionId": ${transactionId}, 
    "Cancelled": false 
    } 

aber das ist funktioniert nicht in JMeter es zeigt die transactionId als ["223"]. Ich will es nur 223

enter image description here

Antwort

3

Wir können dies auf verschiedene Arten tun, aber ich bevorzuge die "Jmeter" -Funktionalität (besser Plugins zu vermeiden). Für Quelle gitlink

1. Using "Regular Expression Extractor" post processor. 
2. Using "JSON Path PostProcessor" post processor. 
  1. "Regular Expression Extractor": Regular ist Ausdruck Extractor nicht der beste Funktionalität.

    Regular Expression: "transactionId":"(.+?)" Template: $1$ Match Number: 1

enter image description here 2. "JSON Pfad Postprocessor": Ich habe diesen Postprozessor nie benutzt, es ist auch gut.Unten ist der Ausdruck

JSON path Expression : $.transactionId Match Numbers: 1

enter image description here

Bitte beachten Sie die Ergebnisse in Debugger Sampler, in "Ansicht Ergebnisse Baum"

enter image description here

+0

JSON Path PostProcessor funktioniert für mich –

+0

Ich möchte das extrahierte Element in eine Datei schreiben. Die Antwort JSON ist: {"distance": 14.518, "distanceUnit": "km", "Zeit": 11.5, "timeUnit": "min"} In Json Extractor habe ich den Variablennamen als ResponseTime angegeben. Im BeanShell-Postprocessor versuche ich, darauf zuzugreifen, als Zeit = vars.get ("ResponseTime"); Aber null werden. Mache ich etwas falsch? bitte vorschlagen –

1

In JMeter 3.1 Version auf-wärts sein, versuchen Sie mit folgenden JSON Path expressionJSON Extractor mit (die eingebaut ist)

JSON Path expression: $.transactionId 
Match No: 1 

gab mir 265 Wert. ohne Anführungszeichen, ohne Array-Symbol.

Json Extraktor Screenshot:

enter image description here

Ergebnisse anzeigen Baum Screenshot

enter image description here

+0

in diesem Fall nichts passiert in Body Data in beide Fälle in Body-Daten zeigt es wie TransactionId ": –

+0

hat es für Sie funktioniert? –

+0

nein es ist nicht Formular erste API-Anruf-Antwort Daten hat "transactionId": "265", mit Code kann es in der nächsten API Anruf "transactionId": ["265"], –

1

Ersetzen Sie Ihren $..transactionId JSON Pfad Expression mit dieser:

$..transactionId[0] 

Es soll diese JSON Array Klammern entfernen, und Sie werden für weitere Tipps zum Arbeiten mit JSON Antworttypen 223 nur als ${transactionId} Variablenwert

Siehe Advanced Usage of the JSON Path Extractor in JMeter Artikel.

Verwandte Themen