Jmeter(5.3)-JSON Extractor入门-提取json和json数组中的值

设定有请求B参数化了一些参数,然后要把请求A的部分响应参数传递给请求B

1.打开JSON Extractor

线程组/某个请求-右键-Add-Post Processors-JSON Extractor
打开json Extractor路径

2.JSON Extractor 常用可配置项

【配置项说明
字段说明
注意
1.match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。(划重点,这条规则后面要用到)
2.Default Values 支持中文(我觉得用中文在报错的时候看结果的请求数据会清楚一点)

3.提取JSON

在请求A下增加JSON Extractor

3.1配置参数

Names of created variables配置需要获取的参数名,比如下图定义的pici定义的一个参数${pici},则在Names of created variables配置pici,如果存在多个参数,用逗号分隔,经测试,支持中文参数
参数名
参数配置示例图

3.2元素定位

发一个请求A,查看响应报文,这是格式化的JSON
响应报文
假如定位的JSON元素为code和typeid这两个位置,可以这样定义:
定位元素
注意:
1.JSON定位要按照JSON路径表达式来定位。$表示响应的根对象。取子对象或对象的属性用.
2.两个参数分别对应下面的定位元素,多个参数之间用英文的逗号分割
详细的JSON定位方式可参考以下链接:JSONPath 表达式
后面的配置项可不填

4.提取JSON数组

4.1数组单元素提取

JSON数组的定义自己百度,简单来说就是同一个结点下有多个同名的数据,如图
JSON数组
比如我要定位到第一个major_group_code,可以这么配置:
方法一
直接在JSON Path expression 中配置
单元素定位1

注意:
1.JSON取数组里的对象用[],数组索引从0开始的,记住第一个元素对应的下标是0,不是1
2.数组的下标写在父结点后面,不是写在子结点后面

方法二
使用通配符把定位信息提取出来,放到Match No.(0 for Random) 中配置
单元素定位2
注意:
1.通配符为*,代表都可以匹配
2.Match No.(0 for Random)中的第一个元素应该写为1,不是0
最后配置参数和非数组参数取值方式一致。

4.2数组提取

JSON元素定位使用*标记为任意,然后再在Match No.(0 for Random)中填入-1,就可以把所有的元素遍历一遍填入到参数的"数组"(暂且这么叫吧=_=)
元素定位
提取参数时,要加上”_X“,如果没有配置Compute concatenation var(suffix_ALL) 的时候的默认读取参数的方法
比如上面的ProfessionalGroupCode的第一个元素取值就是ProfessionalGroupCode_1,然后填入到参数化的请求B位置
参数修正

4.3多元素提取

注意:分隔符为分号

扫描二维码关注公众号,回复: 14622307 查看本文章

参考文章
Jmeter4.0 JSON Extractor 提取json中的值
Jmeter系列(26)- 详解 JSON 提取器
JMeter中提取json数组并读取作为其他接口入参

猜你喜欢

转载自blog.csdn.net/qq_33562122/article/details/115356457
今日推荐