jMeter - Extraire la valeur de la variable

Aug 17 2020

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

UBIKLOADPACK Aug 17 2020 at 15:13

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" \] = "[^"] +? ";

DmitriT Aug 17 2020 at 23:04

L'expression régulière pertinente serait:

_data\["_as_csrf_token"\] = "(\w+)";

Démo:

  • vous devez échapper les caractères meta premier
  • \west 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
AbhishekPuri Aug 18 2020 at 20:07

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

Au cas où vous vous inquiétez des données à extraire. Je suggérerais d'utiliserhttps://regexr.com/ La raison pour laquelle je préfère ce site est qu'il vous aide également avec la feuille de triche.

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.