Jmeter 使用Json提取请求数据

使用Json提取器可以提取请求响应数据

Json提取器

位置: 后置处理器-》Json提取器

在这里插入图片描述

使用介绍

1,变量名

变量名,其他部分引用方式: ${变量名}
若提取多个变量,多个之间使用分号";"分割

在这里插入图片描述

2,Json表达式

$表示响应的根对象
.表示对象的下一级子对象或者属性
取数组加[],数组索引从0开始,*表示数组所有值

若响应结构为:{“code”:200,“resultMessage”:"",“data”:2}
$.data 表示取data这个对象若响应结构为:[{},{},{}]
$[1或者**] 1,2,3表示取数组第几个元素,*表示取所有若响应结构为:{“属性”:[{“sx”:1},{},{}]}
$.属性[0].sx

3,Match no

-1表示匹配所有
0表示随机取值
1表示匹配第一个,2表示匹配第二个
设置变量数量与match no个数要匹配得上,多个提取之间使用;分割

设置为-1时

会提取多个变量,单个变量的引用带具体数值,数字表示提取到的第几个变量。使用方式:${变量名_序列} 序列为1,2,3。。。。

设置为-1时,生成其他相关变量

变量名_matchNr
意思是取到的符合条件的数字个数。可以像使用普通变量一样使用这个_matchNr变量。
变量名_ALL
若是勾选了 计算串联变量(Compute concatenation var(suffix _ALL))则还会生成以_ALL结尾的变量,表示所有变量组合的变量,以分号分割

在这里插入图片描述
在这里插入图片描述

设置为0或1,2,3等具体数值

取的是单个值,变量的使用是${变量名},不用加序列号

4,默认值

没有匹配上的默认值,取多个值时,可设置多个默认值,多个默认值之间分号分割

提取变量的后续操作

调试器样本查看变量取值情况

查看json提取的数据取值情况

在这里插入图片描述在这里插入图片描述

这里debug样本器提取了变量pi 还会生成pi_matchNr变量,表示这个变量提取了多少匹配的值。

Beanshell写变量到文件

beanshell后置处理程序
若是请求之后,提取变量,写文件使用的是beanshell后置处理程序
beanshell取样器
非请求之后写入使用的是beanshell取样器
两种beanshell元件,其中代码暂时没有发现不同

在这里插入图片描述

这是使用beanshell写入获取的quo_no的ALL变量quo_no_ALL ,写入文件后取值直接也是带分号的。

遍历提取到的值

在这里插入图片描述

变量名为quo_no
match no为-1提取数组对象所有符合值

使用ForEach遍历器遍历获取的所有quo_no

在这里插入图片描述

ForEach控制器,从0开始(不包括0),停止循环为 q u o n o m a t c h N r 输 出 变 量 名 设 置 好 q u o o o , 该 控 制 下 调 用 变 量 名 {quo_no_matchNr} 输出变量名设置好quooo,该控制下调用变量名 quon​om​atchNr输出变量名设置好quooo,该控制下调用变量名{quooo}

比如,本脚本是使用beanshell采样器去写文件

在这里插入图片描述

除了写文件还可以做其他处理,比如带上提取到的变量继续请求。

到此这篇关于Jmeter 使用Json提取请求数据的文章就介绍到这了,更多相关Jmeter Json提取请求数据内容请搜索【脚本之家】

posted @ 2022-04-10 11:58  少年Dev  阅读(1176)  评论(0编辑  收藏  举报