Jmeter Json 具有多个条件的提取器 - 失败
Jmeter Json Extractor with multiple conditional - failed
我正在尝试创建一个 Json 提取器,这是一个想法 activity。我有这个 json 结构:
[
{
"reportType":{
"id":3,
"nomeTipoRelatorio":"etc etc etc",
"descricaoTipoRelatorio":"etc etc etc",
"esExibeSite":"S",
"esExibeEmail":"S",
"esExibeFisico":"N"
},
"account":{
"id":9999999,
"holdersName":"etc etc etc",
"accountNamber":"9999999",
"nickname":null
},
"file":{
"id":2913847,
"typeId":null,
"version":null,
"name":null,
"format":null,
"description":"description",
"typeCode":null,
"size":153196,
"mimeType":null,
"file":null,
"publicationDate":"2018-12-05",
"referenceStartDate":"2018-12-05",
"referenceEndDate":"2018-12-06",
"extension":null,
"fileStatusLog":{
"idArquivo":2913847,
"dhAlteracao":"2018-12-05",
"nmSistema":"SISTEMA X",
"idUsuario":999999,
"reportStatusIndicador":"Z"
}
}
}
]
我需要做什么: 首先,我将选项 "Compute concatenation var" 和 "Match No." 用作 -1。因为服务可以带来很多这样的响应。
我要验证,如果"reportStatusIndicador" = 'Z'或'Y',如果是肯定的,我必须收集File.Id或file.FileStatusLog.idArquivo,它们是同样,我正在尝试第一个选项,在本例中为数字“2913847”,但如果有更多结果,我将收集所有 File.id`s
有了这些值,我将继续为所有 File.id`s 的每个值。
我最后一次尝试是这个组合,在阅读了很多书并尝试了很多其他组合之后。
[?(@...file.fileStatusLog.reportStatusIndicador == 'Z' || @...file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
但是我的调试post处理器总是这样,空的:
filesIds=
我可以用这个模式来做:
[?(@.file.fileStatusLog.reportStatusIndicador == 'Z' ||
@.file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
filesIds_ALL=2913755,2913756,2913758,2913759,2913760,2913761,2913762,2913763,2913764,2913765,2913766,2913767,2913768,291131767,29[0]
争取$..[?(@.file.fileStatusLog.reportStatusIndicador == 'Z' || @.file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
演示:
参考文献:
我正在尝试创建一个 Json 提取器,这是一个想法 activity。我有这个 json 结构:
[
{
"reportType":{
"id":3,
"nomeTipoRelatorio":"etc etc etc",
"descricaoTipoRelatorio":"etc etc etc",
"esExibeSite":"S",
"esExibeEmail":"S",
"esExibeFisico":"N"
},
"account":{
"id":9999999,
"holdersName":"etc etc etc",
"accountNamber":"9999999",
"nickname":null
},
"file":{
"id":2913847,
"typeId":null,
"version":null,
"name":null,
"format":null,
"description":"description",
"typeCode":null,
"size":153196,
"mimeType":null,
"file":null,
"publicationDate":"2018-12-05",
"referenceStartDate":"2018-12-05",
"referenceEndDate":"2018-12-06",
"extension":null,
"fileStatusLog":{
"idArquivo":2913847,
"dhAlteracao":"2018-12-05",
"nmSistema":"SISTEMA X",
"idUsuario":999999,
"reportStatusIndicador":"Z"
}
}
}
]
我需要做什么: 首先,我将选项 "Compute concatenation var" 和 "Match No." 用作 -1。因为服务可以带来很多这样的响应。
我要验证,如果"reportStatusIndicador" = 'Z'或'Y',如果是肯定的,我必须收集File.Id或file.FileStatusLog.idArquivo,它们是同样,我正在尝试第一个选项,在本例中为数字“2913847”,但如果有更多结果,我将收集所有 File.id`s
有了这些值,我将继续为所有 File.id`s 的每个值。
我最后一次尝试是这个组合,在阅读了很多书并尝试了很多其他组合之后。
[?(@...file.fileStatusLog.reportStatusIndicador == 'Z' || @...file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
但是我的调试post处理器总是这样,空的: filesIds=
我可以用这个模式来做:
[?(@.file.fileStatusLog.reportStatusIndicador == 'Z' ||
@.file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
filesIds_ALL=2913755,2913756,2913758,2913759,2913760,2913761,2913762,2913763,2913764,2913765,2913766,2913767,2913768,291131767,29[0]
争取$..[?(@.file.fileStatusLog.reportStatusIndicador == 'Z' || @.file.fileStatusLog.reportStatusIndicador == 'Y')].file.id
演示:
参考文献: