在 JMeter 中使用 JSON 提取器提取特定条件下的值

当你需要在 JMeter 中对接收到的 JSON 响应进行处理时,JSON 提取器是一个非常有用的工具。在本文中,我们将讨论如何使用 JSON 提取器来提取特定条件下的值,以满足你的需求。

问题描述

假设你收到了以下 JSON 格式的响应结果:

复制代码
{
    "flag": "success",
    "data": {
        "list": [
            {
                "vouDetails": [],
                "vouHead": {
                    "accaCode": "*",
                }
            },
            {
                "vouDetails": [],
                "vouHead": {
                    "accaCode": "*",
                }
            },
            {
                "vouDetails": [],
                "vouHead": {
                    "accaCode": "*",
                }
            },
            {
                "vouDetails": [],
                "vouHead": {
                    "accaCode": "*",
                    "vouDate": "2023-12-14",
                    "vouDesc": "从工商银行提取现金",
                    "vouDetails": [],
                    "vouGroupId": "5a6b9037e6774596be73cd953042b523",
                    "vouGuid": "296cd820e1f5496084398b78c78ee8a9",
                    "vouSourceName": "出纳系统"
                }
            }
        ],
        "page": {
            "currentPage": 1,
            "hasNextPage": false,
            "hasPreviousPage": false,
            "nextPage": 0,
            "pageSize": 100,
            "previousPage": 1,
            "queryRecordSize": 5,
            "startNum": 1,
            "totalPages": 0,
            "totalRows": 4
        },
        "pageList": []
    }
}

你希望能够从上述响应中提取vouGuid的值,且仅以vouSourceName="出纳系统"为条件来执行提取操作。

解决方案

步骤一:添加 JSON 提取器

在 JMeter 的测试计划中,找到相应的 HTTP 请求,并在该请求下添加一个 JSON 提取器。

步骤二:配置 JSON 提取器

在配置 JSON 提取器时,设置如下属性:

  • 变量名称: 输入一个变量名,例如 "cashVoucherGuid"。
  • JSON 路径表达式: 输入要提取值的 JSON 路径。在这种情况下,路径将是 "$.data.list[?(@.vouHead.vouSourceName=='出纳系统')].vouHead.vouGuid"。

步骤三:执行测试并获取结果

执行测试后,你可以使用指定的变量${cashVoucherGuid}来访问提取出的值。

通过以上配置设置 JSON 提取器,你应该能够成功地从 JSON 响应中提取vouGuid的值,其中匹配条件为vouSourceName为"出纳系统"。

使用 JMeter 的 JSON 提取器,你可以轻松地从 JSON 响应中提取特定条件下的值,实现灵活而精确的数据提取操作。