解决jmeter测试中登录后报401权限问题

        今天琢磨了半天,终于把这个问题解决了。首先我们需要了解这个问题的本质是什么,是要解决什么?这样我们才好对症下药,报401是因为用户在登录的时候,服务器会返回cookie,cookie是个校验机制,可以让服务器知道用户是谁,当然也还有什么token之类的。登录后如果我要打开注册页面,这时候浏览器就会自动带上这个cookie给服务器,这样我们就能顺利打开这个页面。但是我们在用jmeter做测试的时候,登录后再跳到注册页面是没有带上这个cookie的,所以服务器不认识你是谁,没办法认证,所以才会报401。

        好了,知道了问题的本质了,我们就要解决 ,我们要做的就是获取服务器产生的这个cookie,并把这个cookie给到注册页面的请求头里,这样服务器就可以认识你了。

        在这里我以token为例,首先需要在登录的http请求下添加正则表达式提取器(是在登录请求下添加,因为我们要取得是登录页面产生的token),添加这个是要把登录所产生的token获取出来,然后赋值给引用名称,这里我命名为token了,为什么不直接把响应报文中的token直接复制到请求头里呢?是因为这个token是变的,而且有时效性,这样做可以保证获取到的token是最新的。

正则表达式输入"token":"(.*?)"

 模板输入$1$

匹配数字(0代表随机)输入1


        接下来我们要把这个token的值给到注册的请求头中,在注册的http请求下添加http信息头管理器,把这个token的值赋值给Authorization。注:要在注册请求下添加http信息头管理器,我试的在线程组下添加报错,原因应该在线程组下添加的,默认下面所有请求中的请求头里都要带这个值,但是登录请求头里是不能带这个Authorization的。

 最后点击执行就可以了,问题就顺利解决了。其实在察看结果树里也可以看这个token的值是如何传递的。

 

 

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值