勘误表 JMESpath 在 jmeter 提取器上的不同行为

ERRATA Different behavior for JMESpath on the jmeter extractor

我正在尝试提取包含 Null 值的数组的最高值; jmeter 不这样做,有人知道为什么吗?

使用:max(result[].data[].values[]) 在 https://jmespath.org/tutorial.html

下工作正常

错误o.a.j.e.j.j.JMESPathExtractor:处理JSON JMESPath Extractor 中的内容时出错,消息:调用“max”的参数类型无效:预期的数字或字符串数​​组,但数组包含数组

{
    "result": [
        {
            "metricId": "count.server",
            "data": [
                {
                    "dimensions": [
                        "SERVICE_METHOD"
                    ],
                    "dimensionMap": {
                        "dt.entity.service_method": "SERVICE_METHOD"
                    },
                    "values": [
                        null,
                        null,
                        1,
                        null,
                        null,
                        1,
                        null,
                        null,
                        null,
                        null,
                        null,
                        null,
                        1,
                        1,
                        null,
                        null,
                        4,
                        null
                    ]
                }
            ]
        }
    ]
}

我不认为表达式“工作正常”,因为它会产生如下内容:

所以你需要:

  1. 摆脱这种嵌套JSON Array
  2. 删除这些 null 个条目

示例 JMESPath 查询类似于:

result[0].data[0].values[? @ != null] | max (@)

演示:

更多信息:The JMeter JSON JMESPath Extractor and Assertion: A Guide