美文网首页
jmeter后置处理器--json提取器

jmeter后置处理器--json提取器

作者: 小啊小狼 | 来源:发表于2021-09-23 18:12 被阅读0次

    一、使用场景

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

    二、使用方法

    1、添加json提取器

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


    image.png

    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 对应的值。


    image.png

    3.3 表达式验证

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


    image.png

    4、一次提取多个字段

    • 多个变量名,中间用“;”号隔开
    • 提取表达式与变量名一一对应,中间用“;”号隔开
    • 多个取值规则,中间用“;”号隔开
    • 缺省值必须要填,一一对应,中间用“;”号隔开


      image.png

    5、一个字段(表达式)匹配到多个值

    image.png
    • 匹配到的多个值,会自动命名为 key_1,key_2,...,key_n,后续可以直接调用
    • 如果勾选了Compute concatenation var(suffix_ALL),会把所有匹配到的数据放在key_ALL这个字段中,也可以作为变量直接调用
    • 会自动生成一个变量key_matchNr,标识匹配到的数据数量

    相关文章

      网友评论

          本文标题:jmeter后置处理器--json提取器

          本文链接:https://www.haomeiwen.com/subject/gzyogltx.html