压测神器jmeter-自动提取token值并再次利用
前言
最近因工作原因接触jmeter比较多,准备把平时工作中的经验记录下来,把一些常使用技巧和jmeter各个功能的一些使用场景做一个比较系统的归档整理
【本文的目的是教大家如何解决在测试后端接口时无需重复输入token值的问题技巧】
案例场景
对于一些测试后端系统的接口时都会要满足一个前端条件就是,需要先登录才可以操作。也就是说在测试接口时需要传入登录时的token才可以。获得得token的方式有很多,但就算是拿到的token,如果有1000个后台接口需求测试难道还要在每个接口后面都增加一次吗?那也太繁琐了,而且token都是有有效时间的,一旦token过期,那又得在这1000个接口每个都改一下,那真的要疯掉了。
下面的方式就是提取登录接口的token并自动引用到其它接口内的token值,实现只需配置一次的效果。
登录请求
HTTP信息头管理器添加post请求类型:application/json;charset=UTF-8
先在jmeter里面添加http请求,填登录接口的相关参数
点击运行之后查看结果,可以看到正确的返回我们想要的token值
提取token操作
添加后置处理器-Json提取器
通过正则的方式提取出上面登录返回的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。
后面我会把我平时使用到的各种方式都分享出来,大家共享学习,如果有理解有误的,还请大神们多多指导,谢谢
请先 后发表评论~