Есть ли способ извлечь самый высокий идентификатор: «15» из bld-appliance-1, используя выражение Json Path. В настоящее время, если использовать это выражение Json "[?(@.name == 'bld-appliance-1')]..id", оно возвращает мне 3 результата. Я также знаю, что мог бы использовать Match No, но моя загвоздка здесь в том, что ответ ДИНАМИЧЕСКИЙ. Я не знаю, является ли 1-й, 2-й или 3-й и т. д. Наибольшим идентификатором при вызове. Ваш ответ высоко ценится. Большое спасибо.
Пример ответа:
[{
"id": "5",
"name": "bld-appliance-1",
"hostName": "bld-appliance-1"
},
{
"id": "10",
"name": "bld-appliance-1",
"hostName": "bld-appliance-1"
},
{
"id": "15",
"name": "bld-appliance-1",
"hostName": "bld-appliance-1"
},
{
"id": "20",
"name": "test-appliance-1",
"hostName": "test-appliance-1"
}, {
"id": "25",
"name": "uat-appliance-1",
"hostName": "uat-appliance-1"
}
]
Вы можете сделать это, используя постпроцессор JSR223 и следующий код Groovy:
def id = new groovy.json.JsonSlurper().parse(prev.getResponseData()).findAll {entry -> entry.name == 'bld-appliance-1'}.collect{entry -> entry.id as int}.max()
если вам нужно сохранить результат в переменной JMeter, вы можете добавить следующую строку:
vars.putObject('id', id)
Больше информации: