Jmeter后置处理器之JSON Extractor

作者: 粥一样温柔 | 来源:发表于2019-03-18 16:49 被阅读7次

    一、使用场景

    json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值。并保存成变量供后面的请求进行调用或断言等。

    二、一般使用方法

    步骤一:选择HTTP请求—>后置处理器—>JSON Extractor


    json extractor.jpg

    步骤二:在查看结果树中,通过json path expression找到需要的json值。“$.data.json”

    如下图,可以提取到返回的json格式的token的值。 json path.jpg

    名称:json后置表达式的名称,标识作用,建议使用有意义的名字
    Variable names:保存的变量名,后面使用${Variable names}引用
    JSON Path expressions:上一步中调试通过的json path表达式
    Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)
    Default Values:找不到时默认值,一般设置为NOT FOUND
    Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作,如:


    JSON EXTRACTOR1.jpg

    三、深度使用

    3.1 获取返回值的数组中第X数值中的参数;

    $.返回参数.数组名[X].参数名 (注意⚠️ X从0开始)


    获取返回值数组中第1个数值中的参数.png

    使用场景:
    某个系统中表单中数据的排序操作。比如:
    将第X个对象排序至第一个,校验排序操作是否正确。
    此时可以获取排序后的第一个对象的某个属性的返回值,是否是执行排序的那一个即可。

    用JSON Extractor用以上方法,获取第一个对象的返回值后,传给断言(响应断言或用BeanShell判断),判断是否符合预期。
    比如下图:


    屏幕快照 2019-04-14 15.13.29.png
    3.2 获取返回值中的多个参数;

    JSON Extractor 支持获取多个返回参数,用英文输入的分号分隔。


    获取多个参数用分号分隔.png
    3.3 获取返回值中,根据某个对象中的属性值获取同一对象的另一个属性值;

    $..[?(@.key1==value1)].key2(所取的值为:在返回的所有对象中,有一个属性key1为value1的对象,这个对象的另一个Key2)。
    如下图:取的值就是所有对象中,"cardCode":"300353058922037248"对应的另一个属性 "cardName"的值。


    屏幕快照 2019-04-14 16.04.24.png

    相关文章

      网友评论

        本文标题:Jmeter后置处理器之JSON Extractor

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