压测神器jmeter-自动提取token值并再次利用

前言

最近因工作原因接触jmeter比较多,准备把平时工作中的经验记录下来,把一些常使用技巧和jmeter各个功能的一些使用场景做一个比较系统的归档整理

【本文的目的是教大家如何解决在测试后端接口时无需重复输入token值的问题技巧】

案例场景

对于一些测试后端系统的接口时都会要满足一个前端条件就是,需要先登录才可以操作。也就是说在测试接口时需要传入登录时的token才可以。获得得token的方式有很多,但就算是拿到的token,如果有1000个后台接口需求测试难道还要在每个接口后面都增加一次吗?那也太繁琐了,而且token都是有有效时间的,一旦token过期,那又得在这1000个接口每个都改一下,那真的要疯掉了。

下面的方式就是提取登录接口的token并自动引用到其它接口内的token值,实现只需配置一次的效果。

登录请求

HTTP信息头管理器添加post请求类型:application/json;charset=UTF-8

先在jmeter里面添加http请求,填登录接口的相关参数

HTTP请求

点击运行之后查看结果,可以看到正确的返回我们想要的token值

这里就可以拿到token值了

提取token操作

添加后置处理器-Json提取器

json提取器

通过正则的方式提取出上面登录返回的token值

token提取规则

JSON提取器参数说明:

Names of created variables 参数名称

JSON Path expressions 提取表达式

Match No.(0 for Random) 匹配规则,-1所有,0随机,1第一个

Compute concatenation va 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值,注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了

Default Values 没提取到就给默认值

token关联请求

把后端的接口增加到jmeter里面,下面是普通的“傻”方式,直接写token值到参数里面

现在我们添加头部管理器,引用token参数 ${token}

点击执行按钮,查看结果,就可以看到刚刚的头部参数已经匹配成功了

同时响应的数据结果也有反馈了

到这里整个token的提取到应用的整个流程就走完了。这里比较容易出错的几个点,大家要配置过程中要多注意一下,一个是在正则时要对登录返回出来的json格式的层级不要搞错了。第二个就是后端接口在使用token时可能在命名上面不一定完全是按照登录时的token来命名的,这里主要关注的值。如我上面登录时的token的key是token,而在后端接口时的token的key名是access_token。

后面我会把我平时使用到的各种方式都分享出来,大家共享学习,如果有理解有误的,还请大神们多多指导,谢谢

举报
评论 0