jMeter - извлечь значение из переменной

Aug 17 2020

Я использую jMeter для проведения стресс-теста веб-сайта. Мне нужно передать значение переменной в следующий запрос.

Значение можно увидеть в теле ответа следующим образом:

var _data = {};
_data["_as_csrf_token"] = "64da5d341c253c2a181796d2524e57c6502d906b";
jQuery.ajaxSetup({ data: _data, type: "POST" });

Как мне использовать средство извлечения регулярных выражений, чтобы получить это значение?

Ответы

UBIKLOADPACK Aug 17 2020 at 15:13

Самый простой способ - использовать экстрактор границ:

Установите слева:

данные ["_ as_csrf_token"] = "

И право:

";

Если вы хотите использовать экстрактор регулярных выражений, используйте:

данные \ ["_ as_csrf_token" \] = "[^"] +? ";

DmitriT Aug 17 2020 at 23:04

Соответствующее регулярное выражение будет:

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

Демо:

  • вам нужно сначала экранировать мета-символы
  • \wэто класс символов для словесных символов (буквенно-цифровые, без учета регистра)
  • + это повторение

Больше информации:

  • Использование RegEx (средство извлечения регулярных выражений) с JMeter
  • Шпаргалка по Perl 5 Regex
AbhishekPuri Aug 18 2020 at 20:07

Используйте следующую строку для извлечения данных с помощью ReEx Extractor.

_data\[\"_as_csrf_token\"\] \= \"(.+?)\"\;

Как показано на скриншоте ниже, на

случай, если вы беспокоитесь о данных, которые нужно извлечь. Я бы предложил использоватьhttps://regexr.com/ Причина, по которой я предпочитаю этот сайт, заключается в том, что он также помогает вам со шпаргалкой.

Второй вопрос, почему (. +?), А почему не что-нибудь еще? Причина в том, что он соответствует любому тексту в шаблоне. Не нужно беспокоиться о специальных символах.