jmeter переменная экстрактора json - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь найти значение json на основе переменной (idSearch), которая была установлена ​​на предыдущем шаге.Я попытался использовать «экстрактор json» и установить следующие параметры:

- Names of created variable: nameValue
- JSON Path expressions: $.[?(@.id_number == ${idSearch})].name

Кажется, он не работает.

json sample:

[{"id_number":12,"name":"John"},
 {"id_number":13,"name":"Ted"},
 {"id_number":14,"name":"Mary"}]

Желаемый результат: - если какая-либо из моих записей json совпадает с моей переменной ($ idSearch, равной 12), тогда nameValue устанавливается в 'John' ИЛИ ​​- еслилюбая из моих записей json соответствует моей переменной ($ idSearch, равной 13), тогда nameValue устанавливается в 'Ted'

1 Ответ

0 голосов
/ 24 октября 2018

Ваш подход должен работать нормально, единственная возможная проблема, о которой я могу подумать, это то, что ваша переменная ${idSearch} не определена или имеет значение, которое не соответствует вашему вводу JSON

Попробуйте просмотреть jmeter.log файл и найдите что-то вроде:

Error processing JSON content in JSON Extractor

Если строка присутствует - у вас проблема с конфигурацией переменной или JSON Extractor.

Вы также можете увеличить детализацию журнала JMeter для JSON Extractor, добавив следующую строку в log4j2.xml файл:

<Logger name="org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor" level="debug" />

После того, как вы это сделаете, вы должны увидеть, что именнопроисходит в jmeter.log файле или в Просмотр журнала окно

JMeter Log Viewer JSON Extractor

Другая потенциальная проблема не такJSON Extractor scope , вы должны поместить его как дочерний элемент запроса, который возвращает вышеуказанный JSON, в противном случае переменная id может быть перезаписана последующими сэмплерами

Вы можете проверить ${idSearch} значение переменной, используя Debug Sampler и Просмотреть дерево результатов комбинация слушателей:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...