#jmeter
#jmeter
Вопрос:
В моем первом запросе я могу извлечь значение с помощью экстрактора регулярных выражений, который хорошо виден в отладочном сэмплере. Значение извлекается путем установки следующих параметров в экстракторе регулярных выражений:-
Name of Created Variable:- instanceUID
Regular Expression:- "InstanceUid":"(.*?)"
Template:-$1$
Match No:-1
Default Value:- (Blank)
Значение, которое я хочу передать в следующем POST-запросе, отображается как:-
instanceUID_g1=2ab5dfb8-a217-4ff2-9025-523565b7b7ad
И тело для следующего HTTP POST-запроса устанавливается следующим образом:-
${"iInfo":{"InstanceUid":"${instanceUID_g1}","Registry":"${Registry}"}}
Когда этот запрос подробно рассматривается внутри дерева результатов просмотра, выглядит так:-
${"iInfo":{"InstanceUid":"${instanceUID_g1}","Registry":"AAX"}}
Как видно, значение ${instanceUID_g1}
не было заменено в теле сообщения, как для переменной ${Registry}
, которая была взята из конфигурации CSV.
Будучи новичком в Jmeter, кто-нибудь может подсказать, что я пропустил?
Ответ №1:
Скорее всего, ваше размещение экстрактора регулярных выражений не очень корректно, будьте в курсе концепции правил определения области действия JMeter
- Если вы поместите средство извлечения регулярных выражений в качестве дочернего элемента запроса — оно будет применено только к этому запросу
- Если вы разместите средство извлечения регулярных выражений на том же уровне, что и несколько запросов, оно будет применено ко всем из них
в последнем случае оно будет применено с 1-го по 1-й сэмплер, затем к отладочному сэмплеру, затем к 3-му сэмплеру, поэтому на 2-м шаге оно будет перезаписано, скорее всего, это ваша проблема
Также кажется, что вы получаете данные из JSON, поэтому имеет смысл использовать JSON Extractor или JMESpath Extractor