JMeter-json提取器

JSON提取器说明:

Apply to:应用范围

Names of created variables :接收值的变量名,自定义,多个变量用分号分隔 

JSON Path expression json path表达式,也是用分号分隔 

Match No.(0 for Random)0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1

Compute concatenation var(suffix_ALL):如果找到许多结果,则插件将使用' , '分隔符将它们连接起来,并将其存储在名为<variable name> _ALL的var中

Default Values: 缺省值,匹配不到值的时候取该值,可写error。

运算符(Operators)

运算符说明
$ 根元素
@ 当前元素
* 通配符,可以表示任何元素
.. 递归搜索
. 子节点(元素)
['' (, '')] 一个或者多个子节点
[ (, )] 一个或者多个数组下标
[start:end] 数组片段,区间为[start,end)
[?()] 过滤器表达式,其中表达式结果必须是 boolean 类型,如可以是比较表达式或者逻辑表达式

 

JsonPath 案例

JSON

{ "lemon": 
{ "teachers": [ { "id": "101", "name": "华华", "addr": "湖南长沙", "age": 25 }, { "id": "102", "name": "韬哥", "age": 28 }, { "id": "103", "name": "Happy", "addr": "广东深圳", "age": 16 }, { "id": "104", "name": "歪歪", "addr": "广东广州", "age": 29 } ],
"salesmans":
[ { "id": "105", "name": "毛毛", "age": 17 }, { "id": "106", "name": "大树", "age": 27 } ]
}, "avg": 25 }

JsonPath 例子及说明

JsonPath路径说明
$.lemon.teachers[*].name 获取所有老师的的名称
$..name 获取所有人的名称
$.lemon.* 所有的老师和销售
$.lemon..age 所有人的年龄
$..age 所有人的年龄
$.lemon.teachers[*].age 所有老师的年龄
$.lemon.teachers[3] 索引为 3(第 4 个)老师的信息
$..teachers[3] 索引为 3(第 4 个)老师的信息
$.lemon.teachers[-2] 倒数第 2 个老师的信息
$..teachers[-2] 倒数第 2 个老师的信息
$..teachers[1,2] 第 2 到第 3 个老师的信息
$..teachers[:2] 索引 0(包含)到索引 2(不包含)的老师信息
$..teachers[1:3] 索引 1(包含)到索引 3(不包含)的老师信息
$..teachers[-2:] 最后的两个老师的信息
$..teachers[2:] 索引 2 开始的所有老师信息
$..teachers[?(@.addr)] 所有包含地址的老师信息(jsonpath_rw 不支持)
$.lemon.teachers[?(@.age < 20)] 所有年龄小于 20 的年龄信息(jsonpath_rw 不支持)

注:提取多个值时,变量名用分号隔开,表达式也用分号隔开

posted @ 2021-04-15 14:24  卡卡嘻  阅读(170)  评论(0编辑  收藏  举报