一般后台系统调用接口的话都会有token校验的,所以我们在用Jmeter测试的话是要带着token的
自己在研究Jmeter的时候第一件事也是来做带有token的接口测试,在网上找寻了方法之后,自己终于能测试成功了,所以写篇博客来记录分享一下
1.填写登录接口的http请求
**2.提取器提取token
方法1:在登录接口下添加正则表达式提取器,获取token
网上大多是用这个方式,这个方式我有时候取不到,不推荐使用这个方式
注意,因为我们系统的token返回的字段是access_token
所以在正则表达式里写的是access_token,正则表达式是:“access_token”:"(.+?)"
说明:
(1)引用名称:下一个请求要引用的参数名称,我这里是access_token
(2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:在找到第一个匹配项后停止。
(3)模板:表示解析到的第几个值给title。如: 1 1 1表示解析到的第1个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的error。
以上说明转自:https://blog.csdn.net/weixin_33998125/article/details/93780284
方法2.添加JSON提取器提取token
1.我们在查看结果树那里选择JSON Path Tester,用JSON提取器去测试是否能取到得到的token
点击Test测试,发现可以取到返回参数的结果token
这就说明我们提取token的表达式可以直接填 $.access_token
2.在http请求里右键,添加–后置处理器–JSON提取器
4.在http请求下新建断言:BeanShell断言
设置token为全局变量
脚本为:
${__setProperty(newtoken,${access_token},)}
是用newtoken这个字段来接收获取的access_token,在后面使用token的时候直接写newtoken就行了
5.在整个测试计划下添加配置元件–HTTP信息头管理器
填写全局变量,我们系统是把token给Authorization字段的,还有前面带有bearer
所以这个字段的值是bearer ${__property(newtoken)}
6.新建线程组测试其他业务,验证以上token是否获取成功
我这边是建的查询接口,token获取成功!
点击上方的运行按钮,会执行所有的线程组
这些线程组都是获取的全局的token,所以用的测试计划下的全局HTTP信息头管理器
用变量来取得token,测试起来方便很多,不必每次都手动去改每个接口下的token值了