如何提取json路径并找到数组长度?

lot*_*uto 3 java arrays json jmeter

如何使用java提取JSON路径并找到数组长度?对于我下面的响应数据。我需要在 Jmeter 断言中验证数组长度应该等于“7”。

[
  [
    "Week",
    "Event Count"
  ],
  [
    "3/13/17",
    "1"
  ],
  [
    "3/20/17",
    "1"
  ],
  [
    "3/27/17",
    "1"
  ],
  [
    "4/3/17",
    "1"
  ],
  [
    "4/10/17",
    "1"
  ],
  [
    "4/17/17",
    "1"
  ]
]
Run Code Online (Sandbox Code Playgroud)

Dmi*_*i T 6

  1. 将JSON Extractor添加为产生上述 JSON 响应的请求的子项,并按如下方式配置:

    • 变量名:任何有意义的,即 week
    • JSON 路径表达式: $[*]
    • 比赛编号: -1

      JMeter JSON 提取器

    这将产生以下 JMeter 变量(您可以使用Debug Sampler验证它们):

    week_1=["Week","Event Count"]
    week_2=["3\/13\/17","1"]
    week_3=["3\/20\/17","1"]
    week_4=["3\/27\/17","1"]
    week_5=["4\/3\/17","1"]
    week_6=["4\/10\/17","1"]
    week_7=["4\/17\/17","1"]
    week_matchNr=7
    
    Run Code Online (Sandbox Code Playgroud)

    你对后一个特别感兴趣

    JMeter 调试采样器

  2. 将响应断言添加为同一请求的子项并配置如下:

    • 适用于:JMeter 变量 -> week_matchNr
    • 模式匹配规则: Equals
    • 要测试的模式: 7

    针对 JSON 变量的 JMeter 响应断言

    这样,如果匹配数等于 7,您的采样器将通过,否则将失败。请参阅如何在三个简单步骤中使用 JMeter 断言一文,了解有关在 JMeter 测试中使用断言的更多信息。

  • 我从各个方面来看他们的规范, $[*].length() 应该可以工作,但事实并非如此。对我来说似乎是 JSONPath 或 jmeter 中的一个错误。很好的解决方法。 (2认同)