0
点赞
收藏
分享

微信扫一扫

Jmeter 使用Json提取请求数据的方法

这篇文章主要介绍了Jmeter 使用Json提取请求数据,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

目录
  • ​​Json提取器​​
  • ​​使用介绍​​
  • ​​1,变量名​​
  • ​​2,Json表达式​​
  • ​​3,Match no​​
  • ​​4,默认值​​
  • ​​提取变量的后续操作​​
  • 调试器样本查看变量取值情况
  • Beanshell写变量到文件
  • 遍历提取到的值

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


Json提取器

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

Jmeter 使用Json提取请求数据的方法_数组

使用介绍


1,变量名

变量名,其他部分引用方式: ${变量名}

若提取多个变量,多个之间使用分号";"分割

Jmeter 使用Json提取请求数据的方法_数组_02

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结尾的变量,表示所有变量组合的变量,以分号分割

Jmeter 使用Json提取请求数据的方法_变量名_03

Jmeter 使用Json提取请求数据的方法_变量名_04

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

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


4,默认值

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


提取变量的后续操作


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

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

Jmeter 使用Json提取请求数据的方法_变量名_05

Jmeter 使用Json提取请求数据的方法_变量名_06

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


Beanshell写变量到文件

beanshell后置处理程序

若是请求之后,提取变量,写文件使用的是beanshell后置处理程序

beanshell取样器

非请求之后写入使用的是beanshell取样器

两种beanshell元件,其中代码暂时没有发现不同

Jmeter 使用Json提取请求数据的方法_数组_07

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

Jmeter 使用Json提取请求数据的方法_数组_08

遍历提取到的值

Jmeter 使用Json提取请求数据的方法_数组_09

变量名为quo_no

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

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

                             变量名为quo_no

Jmeter 使用Json提取请求数据的方法_变量名_10

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提取请求数据的方法_变量名_11

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

举报

相关推荐

0 条评论