2017-02-10 9 views
1

Я пытаюсь использовать извлеченное значение в Body Data другого запроса. Я извлек значение с помощью JSON Path экстрактора, как показано нижеjmeter - как использовать извлеченное значение из ответа в Body Data другого запроса

enter image description here

значения извлекается из ниже ответа enter image description here

Я использовал его, как это в данном Body

{ 
    "TransactionId": ${transactionId}, 
    "Cancelled": false 
    } 

, но это не работает в JMeter показывает транзакцию как ["223"]. Я хочу, чтобы это было только 223

enter image description here

ответ

3

Мы можем сделать это по-разному, но я предпочитаю использовать функциональность «Jmeter» (лучше избегать плагинов). не Для исходного мерзавцаlink

1. Using "Regular Expression Extractor" post processor. 
2. Using "JSON Path PostProcessor" post processor. 
  1. "Regular Expression Extractor": Regular Expression Extractor является не лучшей функциональностью.

    Regular Expression: "transactionId":"(.+?)" Template: $1$ Match Number: 1

enter image description here 2. "Путь JSON постпроцессор": Я никогда не использовал этот пост процессор, это тоже хорошо.Ниже приводится выражение

JSON path Expression : $.transactionId Match Numbers: 1

enter image description here

Пожалуйста, найдите результаты в Debugger Sampler, в "Посмотреть результаты дерева"

enter image description here

+0

JSON Path PostProcessor работает для меня –

+0

Я хочу записать извлеченный элемент в файл. Ответ JSON: {«distance»: 14.518, «distanceUnit»: «km», «time»: 11.5, «timeUnit»: «min»} В Json Extractor я присвоил имя переменной ResponseTime. В постпроцессоре BeanShell я пытаюсь получить к нему доступ как time = vars.get («ResponseTime»); Но получить нуль. Я что-то делаю неправильно? пожалуйста, предложите –

1

В JMeter 3.1 версии на палатах, попробуйте следующее JSON Path expression используя JSON Extractor (который встроен)

JSON Path expression: $.transactionId 
Match No: 1 

дал мне 265 значение. без двойных кавычек, без символа массива.

Json Скриншот экстрактор:

enter image description here

Посмотреть скриншот результаты дерево

enter image description here

+0

в этом случае ничего не передается в данной Body в оба случая в телесных данных, которые он показывает, как TransactionId ":, –

+0

все-таки оно работает у вас? –

+0

нет, это не форма первых данных ответа на запрос api имеет «transactionId»: «265», с кодом, который может быть указан в следующем апи-вызове «transactionId»: [«265»], –

1

Подставьте $..transactionId JSON Path Expression с этим:

$..transactionId[0] 

Он должен удалить эти JSON Array скобок, и вы увидите 223 только как ${transactionId} значения переменного

См Advanced Usage of the JSON Path Extractor in JMeter статьи для более советов по работе с типами реагирования в формате JSON.