【性能测试】【JMeter】json assertion 和 json extractor 区别
在使用JMeter测试过程中,对于response需要进行assert,下面这两个一般需要用到: json assertion 和 json extractor,但是他们有什么区别呢?这里简要描述一下:
一.JSON Assertion(JSON断言)
JSON断言允许你完成对JSON文档的校验,首先,如果如果数据不是JSON,则会解析失败;其次,JMeter会用指定语法寻找指定的path,如果没有找到,则会失败;第三,如果验证期望值为null,JMeter提供了null复选框,校验空数组使用[]。

Assert JSON Path exists:验证JSON Path是否存在。
Additionally assert value:添加验证的值,只有勾选了此复选框,才可以在Expected Value中设置期望的值。
Match as regular expression:匹配正则表达式,在期望的值中填写正则表达式,如果不勾选此项,在Expected Value中设置了正则表达式,则不进行匹配。


Expect null:期望值为null,如果期望的值为null,可以勾选此项。
Invert assertion(如果匹配的值存在,则断言失败,不匹配,则断言成功)。
一.JSON Extractor 插件来提取响应结果
接口响应结果,通常为HTML、JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取。
对于JSON格式的数据,可以通过正则表达式、JSON Extractor插件、BeanShell 来提取。
本次说下如何通过JSON Extractor 插件来提取JSON响应结果。
比如说,接口返回的JSON响应结果如下格式,如何获取 id 为12341的数据呢
{
"status":200,
"data":[
{"id":12341,"name":"test1"},
{"id":12342,"name":"test2"}
]
}
具体操作步骤:
1、需要下载插件,下载地址为:https://jmeter-plugins.org/wiki/JSONPathExtractor/
下载后解压以后将lib和lib/ext中的jar包放到安装目录对应位置,重启即可。

2、可以添加一个 Dummy Sampler 来验证 JSON的取值

3、添加一个jp@gc - JSON Path Extractor

备注: JSON中 data 是一个对象数组, data[0] 代表取的是第一个对象数组,data[*] 代表取全部
.id 取的是id的值 .name取的是name的值
4、执行之后,可以看到 变量 id的值为:12341
---------------------
参考:
http://www.cnblogs.com/zhuzhaoli/p/10290166.html
https://blog.csdn.net/DreamTL/article/details/68957122
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。

浙公网安备 33010602011771号