jmeter:我想从 2 个不同的 json 对象中提取 2 个值,其中 1 json 对象将验证我的条件和我想提取的其他值

jmeter: I want to extract 2 values from 2 different json objects where 1 json object will validate my condition & other value I want to extract

我的 JSON 回复是:

{
"results": [
    {
      "attributes": [
        {
          "format": "internal",
          "name": "resourceid",
          "type": "STRING",
          "value": "56B15190000015E85E57923F0000033B"
        },        
        {
          "format": "attribute",
          "name": "ds6w:identifier",
          "type": "string",
          "value": "ald7_al"
        }
      ]
    },
    {
      "attributes": [
        {
          "format": "internal",
          "name": "resourceid",
          "type": "STRING",
          "value": "56B15190000015E85E578B1F000001B6"
        },        
        {
          "format": "attribute",
          "name": "ds6w:identifier",
          "type": "string",
          "value": "fbh1"
        }
      ]
    },
    {
      "attributes": [
        {
          "format": "internal",
          "name": "resourceid",
          "type": "STRING",
          "value": "56B15190000015E85E578F7800000211"
        },
        {
          "format": "attribute",
          "name": "ds6w:identifier",
          "type": "string",
          "value": "u89cf"
        }
      ]
    }    
  ]
}

我想获取“56B15190000015E85E57923F0000033B”,其中值='ald7_al'

所以基本上在一个 json 数组中我有 json 对象,对于单个 json 对象我有两个 json 对象其中第二个 json 对象将验证我的条件参数,我想要第一个 jsonobject

的值

为了得到解决条件检查的结果,我使用了
JSON extractor expression as -> $..attributes[?(@.value==ald7_al)] 这给了我第二个 json 块,但我想要第一个 [=28= 的值]块。

如果您有任何意见,请帮助我。 预先感谢您的帮助!

JMeter 5.2.1 开始,内置 JMeter 组件无法做到这一点

所以你只剩下 JSR223 PostProcessor and Groovy 语言,应该可以解决你的问题的示例代码如下:

def results = new groovy.json.JsonSlurper().parse(prev.getResponseData()).results

0.upto(results.size() - 1, { index ->
    def attributes = results[index].attributes
    if (attributes[1].get('value').equals('ald7_al')) {
        vars.put('value', attributes[0].get('value'))
    }
})

将其添加为 returns 上述 JSON 请求的子项,如果一切顺利,您将能够访问您正在寻找的值 ${value} 其中必需的。

更多信息: