jmeter 取json值_Jmeter(十九) 后置处理器JSON Extractor 提取json的多个值

json串 []表示对象组成的数组,{}表示对象。

对象里包含多个 "属性":属性值。属性值可以是值,或数组,或对象。

JSON Extractor使用json path表达式匹配,可以一次取多个变量值。$表示响应的根对象。取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始。

示例:

1  找一个响应结果是json格式的,分析响应结果。

比如下面的响应整个是个数组,其中有4个对象。因此取值用$[索引取0-3或*取所有].属性值

如果响应类似{"属性":[{"sx":1},{},{}]},整个响应是个对象。取sx的值:$.属性[0].sx

8d91811579d81d1e28737a3de14aa888.png

2 jmeter添加步骤1分析的请求,并在该请求上点右键添加post processors 》 JSON Extractor

1 分号分隔多个参数名,json path表达式,匹配第几个,默认值   【分隔符必须是分号】

2 所有的个数一定要匹配  【试过了除了matchno(有默认值0),其他三个任一个不匹配该请求都没在结果树显示】

names of created variables :接收值的变量名

json path: json path表达式

match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。

default values: 缺省值,匹配不到值的时候取该值

c2995ca2856923fa196c7c9fee54951e.png

3 新建一个http请求获取参数值

c5bebea57e7ec729d77f8a758efae6bd.png

4 添加结果树,运行,查看结果。

eb67404b9d3b29c4e3f07fa4f325d814.png

5 修改json extractor 获取数组的所有值  $[*].属性。match no=3取第3个。

63b678d65720d6f46faff182f009e62e.png

09d16a0d799dde6ab6c5d56ff8d6d6a1.png

6  match no=5,数组越界后,取default values

e233140624a27561e42aed789657e794.png

0633fa6fbd41843dc7ca5345e030eb32.png

7  修改json extractor  设置match no =-1 匹配所有值;并修改接收参数的http请求的参数为 ${varname_N}。N=1-4.

177907aa95b56367739668fea58a7c4f.png

51e3c6d8f3a1f6e5dc02c6a04d9887e2.png

838dcdc74594646814a20475fc4fce1b.png

8 修改json extractor, ${varname_N}的N越界之后取不到参数 【不会取json extractor里设定的默认值,因为N,P,F,D变量实际取到了值】

b8bbbb8887c9de286de53972ea86f77d.png

c75c738ae11d346891cff0d68e1b61e6.png

原文转载自:https://www.cnblogs.com/dinghanhua/p/9823305.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值