组件:JSON路径声明

我试图使用ATLANTBH jmeter JSON PATH Assertion来执行JSON断言。
不过,我似乎无法写出正确的表达式来获取下面发布的JSON提要中的以下字段:

  • 123456789
  • 1009
  • 一些随机的消息

    {"api": {"status":"Success","callsremaining":36,"version":"x.x.x.x"}
    ,"result":{"errors":{"123456789":{"code":1009,"error":"SOME RANDOM MESSAGE"}}}
    }
    
  • 有没有人有过使用这个JMeter插件的经验?
    我知道我可以使用regexBeanshell来验证,但我宁愿使用这些JSON路径声明。

    任何你可以提供的帮助将是最受赞赏的。


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

    假设您可以很容易地使用jmeter的标准Response_Assertion来声明123456789而不是绑定JSON路径提取器(来自相同的组件集合)。

  • 将2个JSON路径声明作为子项添加到返回想要处理的json响应的采样器:

    表达式将相应地$.result.errors..code$.result.errors..error

  • 将JSON路径提取器添加为同一个采样器以提取完整的错误条目:

    在这里输入图像描述

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

  • 在之前添加JSON路径提取器后,将Response Assertion作为子项添加到同一个采样器:

    在这里输入图像描述

    这将在${errorKey}变量的值中声明密钥的名称( 123456789 )。


  • 所以最终的建设可能看起来像

    ...
    YOUR Sampler
        JSON Path Extractor
        JSON Path Assertion
        JSON Path Assertion
        Response Assertion
    ...
    
    链接地址: http://www.djcxy.com/p/11357.html

    上一篇: components: JSON Path Assertion

    下一篇: Function equality/ordering in erlang