【问题标题】:how to calculate length of JSON array using JMeter?如何使用 JMeter 计算 JSON 数组的长度?
【发布时间】:2015-03-27 10:08:03
【问题描述】:

我正在使用 Jmeter 进行 API 调用。回应是:

{
  "qid": [
    {
      "id": "88e4b027b72f793d3c",
      "created": 1410955125065
    },
    {
      "id": "54197788e4",
      "created": 1410955125065
    },
    {
      "id": "788e4",
      "created": 1410955125065
    },
    {
      "id": "5419778",
      "created": 1410955125065
    },
    ....
  ]
}

JSON 数组的长度因 API 请求而异。如何确定 JSON 数组的长度?

【问题讨论】:

    标签: arrays json jmeter jmeter-plugins


    【解决方案1】:

    JMeter 有 Beanshell 后处理器。

    所以导入 Java JSON 解析器。

    import org.json.*;
    JSONObject jsonObj = new JSONObject(prev.getResponseDataAsString());
    JSONArray jsonQid = jsonObj.getJSONArray("qid");
    //jsonQid.length  --> should print the array length
    

    【讨论】:

      【解决方案2】:

      更简单的方法是使用“Content-Length”标头参数。

      请记住,此值代表实际身体长度,压缩后(如果有)。

      【讨论】:

        【解决方案3】:
        String response = prev.getResponseDataAsString();
        JSONParser parser = new JSONParser();
        JSONArray arrayJson = (JSONArray) parser.parse(response);
        String size = arrayJson.size().toString();
        

        【讨论】:

          【解决方案4】:

          我发现在最新版本的 JMeter 中使用 JSON Path Postprocessor 更加容易。在您的示例中,添加以下 JSON 路径表达式:$.qid.*.id.

          为您的脚本添加一个带有侦听器的调试采样器。脚本运行后,变量 qid_matchNr 将等于您感兴趣的 JSON 数组的大小。该变量将可用于您的脚本。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-10-20
            • 2013-02-18
            • 2010-11-10
            • 2020-08-13
            • 1970-01-01
            • 2019-10-12
            • 1970-01-01
            相关资源
            最近更新 更多