我在JMeter中使用JSON提取器。下面是我的回应。我正在使用Json路径表达式来捕获值,这个值工作得很好。

除了上述条件外,我还需要增加一个条件。
如果"travelID“长度等于33,那么我只需要得到BoundID。
例子:AAA-10 1234-AAABBB-2022-11-10-1111
上述travelID的总长度或计数为33,但有时我也会得到31,32,但只有在长度为33时才需要捕获绑定ID。那可行吗?请帮助相同的PFB样品响应体。
{
"data": {
"RenewalDetails": [
{
"ExpiryDetails": {
"duration": "xxxxx",
"destination": "XXX",
"from": "XXX",
"value": 2,
"segments": [
{
"valudeid": "xxx-xx6262-xxxyyy-1111-11-11-1111"
}
]
},
"Itemdetails": [
{
"BoundId": "xxx-1-xxx1-111111111111-1",
"isexpired": true,
"FamilyCode": "PREMIUM",
"availabilityDetails": [
{
"travelID": "AAA-AB1234-AAABBB-2022-11-10-1111",
"quota": "X",
"scale": "XXX",
"class": "X"
}
]
}
]
}
]
},
"warnings": [
{
"code": "xxxx",
"detail": "xxxxxxxx",
"title": "xxxxxxxx"
}
]
}
发布于 2022-11-10 12:11:15
我认为使用JSON是不可能的,我建议使用JSR223 PostProcessor和下面的Groovy代码
def BoundId = new groovy.json.JsonSlurper().parse(prev.getResponseData())
.data.RenewalDetails[0].Itemdetails.find { itemDetail ->
itemDetail.availabilityDetails[0].travelID.length() == 33
}?.BoundId
vars.put('BoundId', BoundId ?: 'Not Found')您将能够在需要的地方将提取的值称为${BoundId}。
https://stackoverflow.com/questions/74387551
复制相似问题