JSON 提取器 是提取 响应体(response body)里的信息
一、使用场景:
用在返回格式为json的http请求中,用来获取返回的json中的某个值,并保存成变量可供后面的请求调用。
二、配置说明:
1、添加路径: 后置处理器 -> JSON提取器
2、参数说明
1.Names of created variables: 自定义变量名,用于存放提取的数据。多个变量时用分号分隔。下一个请求使用时,可以用${变量名}引用它。
2.JSON Path expressions: json路径表达式,有多个表达式时用分号分隔。
绝对路径:$.节点名称(复杂的:$.一级节点.二级节点.***.要提取的节点。
相对路径:$..提取节点key。同级不同级但相同key值都被提取
绝对路径和相对路径在获取多个值时的区别:
用绝对路径获取的多个值,变量名都一样(自定义那个);
相对路径获取的多个值,每个值都有一个变量名,变量名为 自定义的那个_下标,如返回3个值,自定义变量名为rspcode,那么三个值的变量名为rspcode_1, rspcode_2,rspcode_3。调用时需要哪个值可以用 ${rspcode_?}
3.Match No. (0 for Random):必填。0为随机取一个值,-1为提取所有值,其他正整数(n)为提取第n个值。有多个表达式时,用分号隔开
4.Compute concatenation var: 如果匹配到多个结果,将使用’ , '分隔符将它们连接起来,命名为“变量名_ALL”
5.Default Values:提取值为空时,返回这个设定的默认值。当Json表达式有两个及以上时,这个字段必填,有多少个表达式就要有多少个default value,用分号分隔
例如使用json提取器获取token
三、将提取的变量设置为全局变量
设置成全局变量后,跨线程也可调用了,具体方法如下:
1、添加后置处理器 -->BeanShell PostProcessor
2、用__setProperty()函数设置全局变量,即在BeanShell PostProcessor脚本输入框中添加函数
3、后面线程请求调用的时候,用__P()函数调用即可。
如HTTP请求的 HTTP信息头管理器中使用上面获取的token
这样变量就可跨线程调用了。