3

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

 1 year ago
source link: https://blog.51cto.com/u_15874356/5918765
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、使用场景

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

二、使用方法

1、添加json提取器

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

【JMETER后置处理器--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 对应的值。

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

3.3 表达式验证

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

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

4、一次提取多个字段

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK