使用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),停止循环为{quooo}比如,本脚本是使用beanshell采样器去写文件
除了写文件还可以做其他处理,比如带上提取到的变量继续请求。