Jmeter之JSON Extractor<JSON 提取器>(二)

Jmeter之JSON提取器

前言

接口间的关联参数数据需要传递参数值。故可通过 JSON 提取器 来处理。
下面我们一起来学习如何使用 JSON 提取器 获取接口返回的值

注意

JSON Extractor是针对返回的响应数据是json格式才可使用的提取方式。

JSON Extractor的使用

  • Jmeter右键添加 --> 选择后置处理器 --> JSON Extractor(JSON 提取器)
    在这里插入图片描述
  • JSON Extractor对应内容解释
    在这里插入图片描述

Match Numbers:匹配数字:补充1代表所有。
Compute concatenation var(suffix_ALL):是否统计所有获取的值,配合匹配数字(-1 : 所有值)使用,获取的变量名称为“变量名_ALL”,获取的值有多个,用英文逗号隔开;获取所有变量值中的某个值可用 <变量名> _N(其中N从1到结果数)获取。

实操操作

场景:实现一个登录需要用到的验证码,而且这个验证每次登录都是实时获取的。
关键点:获取验证码请求返回的值,传入下一个接口使用。

  • 响应数据如下所示:
{
    "bus_data":[
        {
            "authCode":"tAvA1p",
            "createTime":"2020-07-20 12:07:15",
            "bus_phone":"13500001110",
            "info":"你要么努力向上爬,要么烂在社会最底层的泥淖里。"
        }
    ],
    "authType":"1",
    "message":"GetAuthCode successful",
    "bus_code":"10001"
}
  • 在监听器 --> 察看结果树中选择JSON Path Tester(JSON表达式测试器),输入提取值的JSON表达式,点击Test(测试)即可查看数据是否可提取。
    在这里插入图片描述

  • Json 表达式编写规则如下:

Json Path expression 说明 例子 获取的值
$ 响应数据的最外层数据(json格式的响应数据) $ 上诉的响应数据所有值
$.参数名 获取参数下对应的值(可使用子表达式返回JSON对象中的嵌套值) $.bus_code 10001
$.[参数名,参数名] 获取多个参数的值(参数名用引号括起来,$或.可不填写) [‘authType’,‘message’]或$.[‘authType’,‘message’]或 $[‘authType’,‘message’] {“authType”:“1”,“message”:“GetAuthCode successful”}
$.参数名[N] 获取参数值列表下的值(N表示取第几个值的下标,从0计数,*表示所有) $.bus_data[0] {“authCode”:“9JIsj1”,“createTime”:“2020-07-20 15:03:58”,“bus_phone”:“13500001110”,“info”:“你要么努力向上爬,要么烂在社会最底层的泥淖里。”}
$.参数名[N].参数名 获取参数值列表下字典格式的参数名对应的值 bia tAvA1p

可参考JsonPath官网语法格式: JsonPath官网

  • 取到对应值后,用==${变量名称}==使用

  • 也可以使用后置处理器中BeanShell PostProcessor获取参数的值去传参。

你可能感兴趣的:(测试,AutoIT,jmeter)