【问题标题】:how to extract json path and find array length?如何提取json路径并找到数组长度?
【发布时间】:2017-09-17 03:09:04
【问题描述】:

如何使用 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"
  ]
]

【问题讨论】:

  • 您能分享您的 JSON 数据而不是响应吗?
  • @fiskra,这只是我的回复数据

标签: java arrays json jmeter


【解决方案1】:
  1. JSON Extractor 添加为生成上述 JSON 响应的请求的子项,并进行如下配置:

    • 变量名:任何有意义的名称,例如week
    • JSON 路径表达式:$[*]
    • 匹配号:-1

    这将产生以下 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
    

    你对后者特别感兴趣

  2. Response Assertion添加为同一个请求的子节点,配置如下:

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

    这样,如果匹配数等于 7,您的采样器将通过,否则它将失败。请参阅How to Use JMeter Assertions in Three Easy Steps 文章以了解有关在 JMeter 测试中使用断言的更多信息。

【讨论】:

  • 很酷的东西,谢谢@dmitri T,但我使用的是 2.13 版本的 J-meter。所以我没有 JSON Exactor。
  • 您可以通过JMeter Plugins 项目使用JSON Path Extractor。您可以使用 JMeter Plugins Manager 安装 JSON 路径提取器(以及 JSON Path Assertion
  • 无论我怎么看他们的规格,$[*].length() 应该可以工作,但它就是不行。对我来说,这似乎是 JSONPath 或 jmeter 中的错误。很好的解决方法。
  • 我用 JSR223 断言(groovy)实现了更大的运算符:return vars.get("week_matchNr").toInteger() > 0;
猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
相关资源
最近更新 更多