Почему Гатлинг не работает на допустимом пути jsonpath?

У меня есть следующий .check для моего возвращенного тела: (я изменил значения по соображениям безопасности, но структура та же)

 .exec(http("Get ids")
          .post("GetIds")
          .body(ElFileBody("json/getIds.json")).asJson
          .check(jsonPath("$...Types..[?(@.Type == 'web')].id").findAll.saveAs("IDLlist"))

Но транзакция завершается неудачно: «Получение извлечения findAll.exists завершилось сбоем: ожидался конец ввода при попытке извлечь значения из возвращенного тела».

Гатлинг печатает тело неудачной транзакции, когда я беру именно то тело, которое транзакция только что потерпела, в http://jsonpath.com/ и оцените только что сбойный jsonpath, я получаю хорошие результаты без проблем. Это означает, что возвращенное тело верное и путь jsonpath также верен. В чем тогда проблема?


person PloniStacker    schedule 18.11.2019    source источник
comment
Можете ли вы опубликовать json-файл?   -  person James Warr    schedule 18.11.2019


Ответы (2)


Благодаря Стефану с форума Гатлинга я обнаружил, что $ .. Files [? (@. Format == 'DASH_Web')]. URL работает правильно, а не вариант, который у меня был.

Поскольку http://jsonpath.com/ смог извлечь правильный путь, используя мой исходный синтаксис, я считаю его важным Следует отметить, что Gatling jsonpath гораздо более консервативен по своему синтаксису.

person PloniStacker    schedule 19.11.2019

Кажется, ваш синтаксис пути JSON неверен -> "$ ... Типы .. [? (@. Type == 'web')]. Id"

Попробуйте использовать JSONPath Online Evaluator - http://jsonpath.com/, чтобы найти правильный синтаксис json.

person Prasad Mithbavkar    schedule 18.11.2019