JMeter JSON Проблема с выражением экстрактора пути - PullRequest
0 голосов
/ 06 августа 2020

Мой HTTP-запрос возвращает json, подобное этому:

{
  "ReturnData": {
    "Foo_ef49f92628083fab6e14545c547bcf38": {
      "ViewId": "Foo_ef49f92628083fab6e14545c547bcf38",
      "ViewName": "Foo"
    },
    "Bar_ef49f92628083fab6e14545c18871839": {
      "ViewId": "Bar_ef49f92628083fab6e14545c18871839",
      "ViewName": "Bar"
    }
  }
}

В JMeter я использую JSON Extractor со следующим выражением, чтобы найти значение ViewId элемента с панелью ViewName.

$.ReturnData[?(@.ViewName == 'Bar')].ViewId

Но это не работает, переменная пуста.

Когда я пишу что-то в поле значений по умолчанию, это значение используется, поэтому часть скрипта верна.

Я попробовал несколько онлайн-инструментов выражения jsonPath, и все они возвращают правильное значение, а JMeter - нет.

Использует ли здесь JMeter какой-то специальный синтаксис, я чего-то упускаю или есть другой способ добиться этого ?

1 Ответ

0 голосов
/ 06 августа 2020

Хорошо, я нашел решение.

$.ReturnData.*.[?(@.ViewName=='Bar')].ViewId

Это работает, как ожидалось. Кстати, я нашел тестер пути JSON в JMeter, который очень помог. Я до сих пор не понимаю, почему сработали онлайн-инструменты, но в любом случае я рад, что теперь это работает.

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