使用Jmeter上的Json提取器提取Json响应

6ss1mwsb  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(147)

有一种方法可以提取最大的idbld-appliance-1的“15”使用Json路径表达式。当前如果使用此Json表达式“[?(@.name == 'bld-appliance-1')].. id”它返回我3个结果。我也知道我可以使用Match No,但我在这里遇到的问题是响应是DYNAMIC我不知道第一个,第二或第三等是调用时的最高ID。您的回复非常感谢。非常感谢。
样品响应:
[{

"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"
}

]

d4so4syb

d4so4syb1#

您可以使用JSR223 PostProcessor和以下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)

更多信息:

相关问题