【JMETER后置处理器--json提取器】

2022-12-07 14:19:26 来源:51CTO博客


(资料图片仅供参考)

一、使用场景

json提取器用于提取请求返回结果中的某个值或者某一组值,存储为指定的变量,用于后续的接口调用,使用方法比正则表达式提取器简单,所以如果接口响应数据为json格式的,我们优先使用json提取器。

二、使用方法

1、添加json提取器

取样器右键 > 添加 > 后置处理器 > json 提取器

2、参数说明

Variable names:保存的变量名,后面使用${Variable names}引用JSON Path expressions:调试通过的json path表达式Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”Default Values:找不到时默认值时返回什么

3、表达式写法

3.1 绝对路径提取

$.节点名称.二级节点名称.三级节点

3.2 相对路径提取

相对路径提取:$..末梢节点名称

注:如果遇到key的value值为一个List,则使用.key[n]获取下标为n的元素,其中n为list中元素的编号(下标从0开始计算),例如 $..lists[2].typeDesc 表示从返回数据的lists中取下标为2的数据,然后再取typeDesc 对应的值。

3.3 表达式验证

添加查看结果树,运行接口请求,查看结果树中找到需要提取的接口返回,上边选择JSON Path Tester,右侧会出现表达式的输入框,输入自己写好的表达式,点击test,看是否取到你想要的数据,取到则说明表达式正确,否则需要优化表达式。

4、一次提取多个字段

多个变量名,中间用“;”号隔开提取表达式与变量名一一对应,中间用“;”号隔开多个取值规则,中间用“;”号隔开缺省值必须要填,一一对应,中间用“;”号隔开匹配到的多个值,会自动命名为 key_1,key_2,...,key_n,后续可以直接调用如果勾选了Compute concatenation var(suffix_ALL),会把所有匹配到的数据放在key_ALL这个字段中,也可以作为变量直接调用会自动生成一个变量key_matchNr,标识匹配到的数据数量

标签: 使用方法 后置处理器 一一对应

上一篇:焦点要闻:软件公司不需要DevOps 团队?你错了
下一篇:【JMETER压力测试报错:java.net.BindException: Address already in use: connect】