Извлеченное значение регулярного выражения не передается в тело следующего запроса POST в Jmeter

#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