在做接口测试时,很多接口都会依赖登录中的token,所以用jemeter做接口测试时,需要怎样提取登录中的token呢?
一、添加json提取器,具体方法如下:
1.添加线程组

2.添加http默认信息头;由于登录接口是post请求,所以需要添加content-type,此时对应的值为application/json(选择json字符串传入值)

3.添加http请求

4.添加查看树

5.添加后置处理json提取器

JSON提取器参数说明:
1.Variable Names 参数名称
2.JSON Path expressions 提取表达式(注意表达式要写完整,否则读取不到,比如{data:{AuthonToken:.....}},这时表达式如果为$.AuthonToken,这时读取不到的,只有写为$.data.AuthonToken,这样才可以识别到而且大小写一定要对应)
3.Match Numbers匹配规则,-1所有,0随机,1第一个
Compute concatenation var 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了
4.Default Values 没提取到就给默认值
注意一下提取问题:
提取username参数值:
JSON Path Extractor:$.list[0].username
如果提取的参数不存在父级?
$.你要提取的参数名
提取的参数存在父级
$.你要提取的参数名的父亲.你要提取的参数名
如果提取参数的父级存在父级
$.你要提取的参数名的父亲的父亲(爷爷).你要提取的参数名的父亲.你要提取的参数名
参数如果是数组?
$.你要提取的参数参数[N]
以下标的形式取值,0代表取的数组中第一个值,1代表取的是数组中第二个值,N代表取的数组中第N+1个值
6.添加另外需要token的HTTP请求,此接口是post请求,需要登录的token

7.添加信息头,引用提取的token变量

8.添加查看树结果

二、正则表达式提取器:
方法和上面一样,只是将json提取器更改成正则提取器

():括起来的部分就是要提取的。
.:匹配除换行外的任何字符串。
+:代表+号前面的字符必须至少出现一次(一次或多次)。
?:代表?前面的字符最多可以出现一次,在找到第一个匹配项后停止(0次或1次)。
:代表号前面的字符可以不出现,也可以出现一次或者多次(0次、1次或者多次)
(.*):贪婪模式,匹配尽可能多的字符
(.*?)或(.+?):匹配尽可能少的字符,一旦匹配到第一个就不往下走了。