JMeter中JSON提取器的使用

json提取器

1、可提取变量,用于后面接口的调用

此提取器用于提取请求返回结果中的某个值或者某一组值,用法比正则表达式要简单,标准写法为$.key,其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可,如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号
在这里插入图片描述

如上示例为单元素获取方法,如果要获取多个元素,则参数名称写多个,用逗号分开;
而json提取器语法用分号隔开,应当与参数名称一一对应;
匹配编号一样的需要用分号隔开,与参数名称一一对应;
默认值同样用分号隔开,与参数名称一一对应;
Variable names:保存的变量名,后面使用${Variable names}引用
JSON Path expressions:调试通过的json path表达式
Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)
Default Values:找不到时默认值,一般设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”

2、跨线程组调用变量,需要将变量设置为全局变量

实现方法:beanshell脚本和函数助手_setPerproty,目前这种方法都可以跨线程的全局变量;
beanshell脚本如下:
(1)输出结果的处理
在这里插入图片描述

(2)提取的数据后面加上beanshell后置处理器,脚本如下

String userId=bsh.args[0];
//print (token);
${__setProperty(newtoken,${token},true)}

(3)全局变量设置了就需要引用了,这里我就讲述2种引用方法,第一个很简单,在另外一个线程组对应的参数后面,直接把上述全局的前部分拿来就用,即
${__Property(newtoken)} ;还有一种就是使用__P函数,
${__P(newtoken,0000)} ,0是默认值,都是可以调用;

还有另外一种方式设置全局变量:

(1)增加beanshell sampler,在需要提取的请求后面;
(2)打开函数助手:Ctrl+shift+f1;找到setProperty函数,填写设置变量名称和将那个变量设置为全局变量:第一个值是下一个线程引用的名称,第二个值是被设置全局的变量,第三个是默认值;
在这里插入图片描述
(3)将函数助手生成的脚本,复制粘贴在步骤1里面;${__setProperty(newtoken,{token},0000)}
在这里插入图片描述
(4)引用的方法和上面的一样,没有什么区别

3、实际操作使用如下:

提取cookie
在这里插入图片描述
将cookie设置为全局变量
在这里插入图片描述
调用cookie
在这里插入图片描述

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值