【问题标题】:ATLANTBH jmeter-components: JSON Path AssertionATLANTBH jmeter-components:JSON 路径断言
【发布时间】:2012-10-25 15:54:43
【问题描述】:

我正在尝试使用 ATLANTBH jmeter JSON PATH 断言执行 JSON 断言。
但是我似乎无法编写正确的表达式来从下面发布的 JSON 提要中获取以下字段:

  1. 123456789
  2. 1009
  3. 一些随机消息

    {"api": {"status":"Success","callsremaining":36,"version":"x.x.x.x"}
    ,"result":{"errors":{"123456789":{"code":1009,"error":"SOME RANDOM MESSAGE"}}}
    }
    

这里有人有使用这个 JMeter 插件的经验吗?
我知道我可以使用 regexBeanshell 进行验证,但我更愿意使用这些 JSON 路径断言。

如果您能提供任何帮助,我们将不胜感激。

【问题讨论】:

    标签: json jmeter jsonpath jmeter-plugins


    【解决方案1】:

    看起来您可以使用 JSONPath 表达式(在 JSON 路径断言组件中)轻松断言 1009SOME RANDOM MESSAGE 值,但不确定 123456789:这不是节点值而是波特名称,以及这些使用的 JSONPath 实现components 似乎没有表达式来获取节点名称。

    假设您可以轻松地使用断言 123456789 而不是将 JSON 路径提取器(来自同一组件集合)与 jmeter 的标准 Response_Assertion 绑定。

    1. 将 2 个 JSON 路径断言作为子项添加到返回您要处理的 json 响应的采样器:

      表达式将分别为$.result.errors..code$.result.errors..error

    2. 将 JSON 路径提取器作为子项添加到同一个采样器以提取完整的错误条目:

      表达式:$.result.errors..
      这将提取 {"123456789":{"error":"SOME RANDOM MESSAGE","code":1009}} 并保存到指向的变量 (${errorKey})。

    3. 在先前添加 JSON 路径提取器之后,将响应断言作为子级添加到同一采样器:

      这将在 ${errorKey} 变量的值中断言键的名称 (123456789)。


    所以最终的构造可能看起来像

    ...
    YOUR Sampler
        JSON Path Extractor
        JSON Path Assertion
        JSON Path Assertion
        Response Assertion
    ...
    

    【讨论】:

      猜你喜欢
      • 2014-03-27
      • 2021-02-28
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多