Извлечь элементы массива из ответа JSON в tsung, массив является корнем ответа

Я использую tsung 1.6, и у меня есть файл конфигурации, в котором один из запросов возвращает следующий ответ.

Ответ:

[
  { key: value1 },
  { key: value2 }
]

Моя цель — извлечь некоторые элементы переменных из ответа и использовать их дальше. Чтобы быть конкретным, я хотел бы извлечь value1 и value2 в динамическую переменную. Вот что я делаю

<request>
  <dyn_variable name="value1" jsonpath="$[0].key"/>
  <dyn_variable name="value2" jsonpath="$[1].key"/>

  <http url='/get.json' version='1.1' method='GET'></http>
</request>

<request subst="true">
  <http
    url='/patch/%%_value1%%'
    version='1.1' 
    contents='{&quot;notified&quot;:true}'
    content_type='application/json;charset=utf-8'
    method='PATCH'
  />
</request>

Вышеупомянутое мне ничего не дает.

Синтаксис $[0] взят с этого сайта. Это было упомянуто в документации tsung, однако tsung также упомянул, что реализует очень ограниченное подмножество jsonpath.

Нужна помощь в извлечении следующих данных.

Спасибо


person Chetan Kothari    schedule 20.10.2016    source источник


Ответы (2)


e.g.

test.json: [{"а":1},{"б":2}]

tsung.xml:

<request>
<dyn_variable name="Result" jsonpath="$.[0].a"/>
<http url='/test.json' version='1.1' method='GET'></http>
</request>

p.s. Формат файла test.json не соответствует формату utf-8.

person Le Li    schedule 20.10.2016

Несколько примеров, как извлечь данные:

<dyn_variable name="id_1" jsonpath="$.content.id"/>

<dyn_variable name="id_2" jsonpath="$.content.[0].id"/>

<dyn_variable name="id_3" jsonpath="$.content.forms.array[?title=test].id"/>

См. дополнительные примеры: https://goessner.net/articles/JsonPath/index.html#e2

И проверьте в реальном времени: https://jsonpath.com/

person IgorN    schedule 17.07.2019