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

2023-12-14 21:00:25

當你需要在 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 響應中提取特定條件下的值,實現靈活而精確的資料提取操作。