ATLANTBH jmeter-components:JSON Path Assertion

前端之家收集整理的这篇文章主要介绍了ATLANTBH jmeter-components:JSON Path Assertion前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 ATLANTBH jmeter JSON PATH断言执行JSON断言.但是我似乎无法编写一个正确的表达式来从下面发布的JSON提要中获取以下字段:

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

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

有没有人有使用这个JMeter插件的经验?
我知道我可以使用正则表达式和Beanshell进行验证,但我宁愿使用这些JSON Path Assertion.

您可以提供的任何帮助将非常感激.

解决方法

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

假设您可以使用jmeter的标准Response_Assertion轻松使用断言123456789而不是绑定JSON Path Extractor(来自相同的组件集合).

>将2个JSON Path Assertions作为子项添加到采样器,它返回您要处理的json响应:

表达式将相应地为$.result.errors..code和$.result.errors..error.
>将JSON Path Extractor作为子项添加到同一个采样器以提取完整的错误条目:

表达式:$.result.errors ..
这将提取{“123456789”:{“error”:“SOME RANDOM MESSAGE”,“code”:1009}}并保存到指向的变量(${errorKey})中.
>在以前添加的JSON Path Extractor之后,将Response Assertion添加为同一个采样器:

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

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

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

猜你在找的JavaScript相关文章