前些日子压测我们系统,发现我们开发把cookie值当成一个参数返回到了json中,这样就要从json中获取这个cookie后配置到cookie 管理器中
Jmeter中本身是不支持直接处理json串的,如果要获取到返回结果中指定的值,必须要要通过正则表达式来获取到,正则表达式比较麻烦,写错了就获取不到值了,大家都知道json是key-value这样来存值的,那jmeter里面能不能直接通过key取值呢,这样的话就不用正则表达式那么麻烦了。
如果想要通过key直接取值的话,jmeter官方有一个 json path extractor的插件,装上它就可以直接处理json了,通过key来取值。
通过jmeter 的插件管理器去下载
(附录:jmeter插件管理器 下载地址:
-
- 下载管理插件(http://jmeter-plugins.org/)https://jmeter-plugins.org/install/Install/(插件管理器下载地址)
- 将下载的文件拷贝的你的JMeter根目录下的
lib/ext
目录 - 启动JMeter,点击
菜单栏
-选项
-Plugins Manager
,如图1
:
)
在管理器中寻找
下载安装重启后,就可以看到有json path extractor这个插件了
那怎么使用呢,比如说刚才我调用的是获取用户信息的接口,我要获取到第一个user_id,返回的json是这样的:
{ "code":200, "info":[ { "age": 18, "id": 7, "sex": "male", "username": "myname" }, { "age": 23, "id": 90, "sex": "female", "username": "yourname" } ] }
分析一下这个json串,userid在info这个列表里面存着,取第一个userid,那就要先取到info里面的值,再取info里面的第一个元素,就是用户信息,再取到userid。
json path extractor中使用$代表原来接口的返回值,取值如下图:
再补充一个知识点: 就是执行有优先级 要是 cookie 管理放在外面的话 是去不到从denglu 中截取的 cookie的值的