如何从Json响应中提取多个json值

时间:2018-12-11 03:45:15

标签: jmeter jmeter-plugins

我正在尝试从jmeter脚本上的JSON响应中提取多个值。以下是我的回复示例:

{                 “ startDate”:“ 2018-12-10T15:36:34.400 + 0000”,                 “ userId”:“ 7211111-2fa90”,             “ createdBy”:“ TEST”,                 “注意”: {                     “ content”:“申请已提交”                 },                 “类型”:“已提交”             }

    "currentEventState": "CLOSED",
     {
        "Xxxx": "test",
        "Loc": null,
        "Zipcode": [],
        "Locality": 82,
        "Address": {
            "Add": 12302,
            "Add2": "place",
            "Zip": {
                "Phone": "home",
                "Email": "test@test.com"
            }
        },
        "state": "MD",
        "Cost": "E  "
    },
    "AppID": "cd8d98e6-c2a79",
    "Status": "CLOSED",

}

对于TYPE为Submitted和Status为Closed的情况,我尝试提取userid和AppID。我尝试将Json提取器与$。[?(@。Type ==“ SUBMITTED”)]一起使用。[*] 。?(@。Status ==“ CLOSED”)。userid,APPID,但无法获得预期的结果。谁能在这方面指导我。

1 个答案:

答案 0 :(得分:1)

您需要使用inline predicate来组合2个子句和一个分号,以便将结果存储到2个单独的JMeter变量中。

  1. JSON Extractor添加为返回JSON之上的请求的子项
  2. 配置如下:

    • 已创建变量的名称:userid;appid
    • JSON路径表达式:$..[?(@.Type=='SUBMITTED' && @.Status == 'CLOSED')].userId; $..[?(@.Type=='SUBMITTED' && @.Status == 'CLOSED')].AppID
    • 默认值:NA;NA

这是单个表达式的演示正常工作:

enter image description here

这是Debug Sampler报告的提取值:

enter image description here