Jmeter:JSON响应操作并传递到下一个http请求
我得到了来自HTTP GET请求的JSON文件响应,我希望使用该JSON并将其传递给下一个HTTP请求。我得到了以下回应数据Jmeter:JSON响应操作并传递到下一个http请求,json,jmeter,load-testing,stress-testing,jmeter-5.0,Json,Jmeter,Load Testing,Stress Testing,Jmeter 5.0,我得到了来自HTTP GET请求的JSON文件响应,我希望使用该JSON并将其传递给下一个HTTP请求。我得到了以下回应数据 { "apiInfo": { "id": "23143", "name": "bookkeeping", "state": "used", "data": "15893712000000" }, "apiDetails": [ { "bookName": "abc", "
{
"apiInfo": {
"id": "23143",
"name": "bookkeeping",
"state": "used",
"data": "15893712000000"
},
"apiDetails": [
{
"bookName": "abc",
"state": "old",
"noOfTimesUsed": "53"
"additionalParam"{
"name": "abc",
"id": "123"
}
},
{
"bookName": "def",
"state": "new",
"noOfTimesUsed": "5",
"action": "keep"
"additionalParam"{
"name": "def",
"id": "456"
}
},
{
"bookName": "xyz",
"state": "avg",
"noOfTimesUsed": "23"
"additionalParam"{
"name": "ghi",
"id": "789"
}
},
{
"bookName": "pqr",
"state": "old",
"noOfTimesUsed": "75",
"action": "discard"
"additionalParam"{
"name": "jkl",
"id": "012"
}
}
]
}
我想使用JSON响应中的“apiInfo”和“apiDetails”部分并操作其数据。正如您所注意到的,一些数组字段中有属性“action”,而另一些则没有。我想确保数组中的所有字段都有此数据,并被指定为“action”:“keep”。此外,我还想从apiInfo中添加“id”,从apiDetails本身的additionalParams中添加“name”。我想要的最终结果有点像这样
"apiDetails": [
{
"id": "23143",
"bookName": "abc",
"state": "old",
"noOfTimesUsed": "53",
"action": "keep",
"name":"abc"
},
{
"id": "23143",
"bookName": "def",
"state": "new",
"noOfTimesUsed": "5",
"action": "keep",
"name":"def"
},
{
"id": "23143",
"bookName": "xyz",
"state": "avg",
"noOfTimesUsed": "23",
"action": "keep",
"name":"ghi"
},
{
"id": "23143",
"bookName": "pqr",
"state": "old",
"noOfTimesUsed": "75",
"action": "keep",
"name":"jkl"
}
]
我一直在尝试使用JSR223采样器,并且一直在努力使用它。事情有点复杂,我需要帮助。注:我曾尝试使用javascript代码按预期操作结果,但没有成功
请帮忙
谢谢,希德
${request}
def apiDetails = new groovy.json.JsonSlurper().parse(prev.getResponseData()).apiDetails
apiDetails.each { apiDetail ->
apiDetail.put('action', 'keep')
}
vars.put('request', new groovy.json.JsonBuilder(apidetails: apiDetails.collect()).toPrettyString())