jMeter - Extraire la valeur de la variable
J'utilise jMeter pour effectuer un test de résistance d'un site Web. J'ai besoin de transmettre la valeur d'une variable à la prochaine requête.
La valeur peut être vue comme suit dans le corps de la réponse:
var _data = {};
_data["_as_csrf_token"] = "64da5d341c253c2a181796d2524e57c6502d906b";
jQuery.ajaxSetup({ data: _data, type: "POST" });
Comment utiliser l'extracteur d'expressions régulières pour obtenir cette valeur?
Réponses
Le moyen le plus simple est d'utiliser l'extracteur de limite:
Réglez à gauche sur:
data ["_ as_csrf_token"] = "
Et droit à:
";
Si vous souhaitez utiliser un extracteur de regex, utilisez:
data \ ["_ as_csrf_token" \] = "[^"] +? ";
L'expression régulière pertinente serait:
_data\["_as_csrf_token"\] = "(\w+)";
Démo:
- vous devez échapper les caractères meta premier
\w
est une classe de caractères pour les caractères de mots (alphanumériques, insensible à la casse)+
est la répétition
Plus d'information:
- Utilisation de RegEx (Regular Expression Extractor) avec JMeter
- Fiche de triche Perl 5 Regex
Veuillez utiliser la chaîne suivante pour extraire les données à l'aide de ReEx Extractor.
_data\[\"_as_csrf_token\"\] \= \"(.+?)\"\;
Comme le montre la capture d'écran ci-dessous
Deuxième question, pourquoi (. +?) Pourquoi pas autre chose? La raison en est qu'il correspond à tous les types de texte dans le modèle. Pas besoin de s'inquiéter des caractères spéciaux.