jMeter - Wert aus Variable extrahieren
Ich verwende jMeter, um einen Stresstest einer Website durchzuführen. Ich muss den Wert einer Variablen an die nächste Anforderung übergeben.
Der Wert kann im Antworttext wie folgt angezeigt werden:
var _data = {};
_data["_as_csrf_token"] = "64da5d341c253c2a181796d2524e57c6502d906b";
jQuery.ajaxSetup({ data: _data, type: "POST" });
Wie soll ich den Regular Expression Extractor verwenden, um diesen Wert zu erhalten?
Antworten
Am einfachsten ist es, den Boundary Extractor zu verwenden:
Links einstellen auf:
data ["_ as_csrf_token"] = "
Und richtig zu:
";
Wenn Sie den Regex-Extraktor verwenden möchten, verwenden Sie:
data \ ["_ as_csrf_token" \] = "[^"] +? ";
Der relevante reguläre Ausdruck wäre:
_data\["_as_csrf_token"\] = "(\w+)";
Demo:
- Sie müssen entkommen Meta - Zeichen zuerst
\wist eine Zeichenklasse für Wortzeichen (alphanumerisch, ohne Berücksichtigung der Groß- und Kleinschreibung)+ist die Wiederholung
Mehr Informationen:
- Verwenden von RegEx (Regular Expression Extractor) mit JMeter
- Perl 5 Regex Spickzettel
Verwenden Sie die folgende Zeichenfolge, um die Daten mit ReEx Extractor zu extrahieren.
_data\[\"_as_csrf_token\"\] \= \"(.+?)\"\;
Wie im folgenden Screenshot gezeigt.
Zweite Frage, warum (. +?) Warum nicht noch etwas? Der Grund ist, dass es mit jeder Art von Text innerhalb des Musters übereinstimmt. Sie müssen sich keine Sorgen um die Sonderzeichen machen.