Jmeter 使用Json提取请求数据的方法
目录
- Json提取器
- 使用介绍
- 1,变量名
- 2,Json表达式
- 3,Match no
- 4,默认值
- 提取变量的后续操作
- 调试器样本查看变量取值情况
- Beanshell写变量到文件
- 遍历提取到的值
使用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,该控制下调用变量名 quonomatchNr输出变量名设置好quooo,该控制下调用变量名{quooo}
比如,本脚本是使用beanshell采样器去写文件
除了写文件还可以做其他处理,比如带上提取到的变量继续请求。
到此这篇关于Jmeter 使用Json提取请求数据的文章就介绍到这了,更多相关Jmeter Json提取请求数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!