【问题标题】:How to extract two values from the response based on some condition in Jmeter?如何根据 Jmeter 中的某些条件从响应中提取两个值?
【发布时间】:2021-06-23 13:58:33
【问题描述】:

尝试从以下响应中捕获条件标志为 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
            }
        }
    }
}

【问题讨论】:

    标签: jmeter performance-testing


    【解决方案1】:
    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}

    演示:

    更多信息:

    【讨论】:

    • 感谢您的建议。我需要根据条件 Flag 为 False 提取日期及其对应的 ID。如何使用上述建议实施此条件?需要提取值 - (2021-06-27 & 001c 基于条件标志为 False) 或 (2021-06-26 & d388 基于条件标志为假)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多