【问题标题】:How to find json array length in json extractor如何在 json 提取器中查找 json 数组长度
【发布时间】:2021-05-12 17:20:19
【问题描述】:

我使用以下 JSON 和查询来计算 JMeter json 提取器中的数组长度。

{ “数据”: { “模态”:“HJ”, “technicalid”:“e492fc62-a886-67a461b76de8”, “视图模型”:{ “系列”: [ { “名称”:“H_0_G_0_R_0”, “UID”:“J_0_G_0_R_0”, “描述”:“测试1”, “类型”:“系列”, “组”:[ { “名称”:“H_0_G_0”, “UID”:“G_0_G_0”, “描述”:“第 1 组”, “类型”:“组” } ], “后处理”:空 } ] }, “状态”:“成功” }, “成功”:是的, “状态码”:200, “错误信息”: ”” }

这是查询。

data.Model.series[0].groups.length

这在在线 jsonquerytool 中运行良好。当我在 JMeter json 提取器中使用此查询时,它返回 null。我认为这是因为它返回一个整数,因为其他返回字符串的类似查询与 json extractor 一起工作正常。如何在 JMeter json 提取器中找到数组长度?

【问题讨论】:

    标签: json jmeter


    【解决方案1】:

    使用JSON Extractor,您可以提供“匹配号”。如-1:

    匹配的数量将以foo_matchNrJMeter Variable


    替代选项适用于JSON JMESPath Extractor,它提供length() function,因此您可以获得数组的大小:

    length(data.viewModel.series[0].groups)
    

    或者如果你喜欢pipe expressions

    data.viewModel.series[0].groups | length(@)
    

    【讨论】:

      【解决方案2】:

      为什么用 JSON 提取器来计算长度?您可以使用后处理器。就像使用 groovy 脚本的 JSR223 后处理器一样。

      import groovy.json.*
      
      def response = prev.responseDataAsString ;
      def json = new JsonSlurper().parseText(response) ;
      def sizeResultPractitioners = json.data.viewModel.series[0].groups.size();
      
      log.info("---------->"+sizeResultPractitioners);
      

      我尝试使用您的 JSON 响应负载,也尝试使用修改后的响应负载,

      使用修改后的响应负载,

      【讨论】:

        猜你喜欢
        • 2017-09-17
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        • 2014-05-13
        相关资源
        最近更新 更多