首页 > 解决方案 > 如何根据 Jmeter 中的某些条件从响应中提取两个值?

问题描述

尝试从以下响应中捕获条件标志为 false 的日期 (2021-06-27) 和 ID (001c) 值。日期和 ID 应来自同一段。无法获取相同的值集。例如,我需要提取 2021-06-27 及其对应的 ID 值 001c。请在表达式或 JSON 提取器查询中提供帮助

回复:

{
    "status": "200",
    "message": "Success",
    "data": {
        "Dates": {
            "2021-06-26": {
                "id": [
                    "d388"
                ],
                "Flag": false
            },
            "2021-06-27": {
                "id": [
                    "001c"
                ],
                "Flag": false
            },
            "2021-06-28": {
                "id": [
                    "004t"
                ],
                "Flag": true
            }
        }
    }
}

标签: jmeterperformance-testing

解决方案


  1. 添加JSR223 PostProcessor作为返回上述 JSON 的请求的子项

  2. 将以下代码放入“脚本”区域:

    vars.put('id',  new groovy.json.JsonSlurper().parse(prev.getResponseData()).data.Dates['2021-06-27'].get('id')[0])
    
  3. ${id}根据需要参考提取的值

演示:

在此处输入图像描述

更多信息:


推荐阅读