具有多个条件的Jmeter Json Extractor-失败

时间:2018-12-05 13:23:45

标签: json jmeter stress-testing json-extract

我正在尝试创建一个Json Extractor,这是一个思想活动。我有这个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"
     }
  }
 }
]

我需要做的:首先,我正在使用“计算串联变量”和“匹配编号”选项。为-1。因为该服务可以带来很多响应。

我必须验证,如果“ reportStatusIndicador” ='Z'或'Y',如果为正,我必须收集File.Id或file.FileStatusLog.idArquivo,它们是相同的,我正在尝试第一种选择,在这种情况下,编号为“ 2913847”,但是如果有更多结果,我将收集所有File.id`s

掌握了这些值之后,我将为所有File.id的每个值继续一个。

我的最后尝试是这种组合,在阅读了很多书并尝试了许多其他组合之后。

[?(@ ... file.fileStatusLog.reportStatusIndicador =='Z'|| @ ... file.fileStatusLog.reportStatusIndicador =='Y')]。file.id

但是我的调试后处理器始终显示为空: filesIds =

2 个答案:

答案 0 :(得分:1)

我可以用这种模式做到这一点:

[?(@.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,2913769,2913770

答案 1 :(得分:1)

$..[?(@.file.fileStatusLog.reportStatusIndicador == 'Z' || @.file.fileStatusLog.reportStatusIndicador == 'Y')].file.id

演示:

enter image description here

参考文献: