十四、JMeter实战-关联获取token
一、关联获取Token
1、Token是什么?
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。
2、Token的作用
- 身份验证;
- 避免表单重复提交
3、Token和session的区别?
- App以及分布式的系统用Token比较多;
- session在web服务端用得比较多。
4、Token的特点
- 无状态、可扩展:在客户端存储的Token是无状态的,并且能够被扩展。基于这种无状态和不存储Session信息,负载均衡器能够将用户信息从一个服务器传到其他服务器上。
- 安全性: 请求中发送token而不再是发送cookie能够防止CSRF(跨站请求伪造)。即使在客户端使用cookie存储token,cookie也仅仅是一个存储机制而不是用于认证。
- 有效性:Token具有有效性,Token过期了要重新登录。
5、Token在接口测试中的应用
Token主要来用标识用户是否处于登录状态,有些接口需要登录后才有权限访问的。
在实例讲解之前,先熟悉一下Token的请求过程:
客户端用户登录后,服务器会返回一个token的值,当客户端再次发送请求的时候,在请求头或者body中带上token的值,服务器就会校验这个用户是否处于登录状态。
现在直接去访问接口B,看看什么情况
这里引入一个概念,鉴权: 鉴权(authentication)是指验证用户是否拥有访问系统的权利。
我们常用的鉴权有四种:
- HTTP Basic Authentication
- session-cookie
- Token 验证
- OAuth(开放授权)
怎么确认系统是通过Token还是cookie保持登录?
- 直接问开发
- 自己抓包看一下,请求信息中没有cookie相关的信息,而且在登录的响应看看有没有token的值生成
处理Token的思路:*
--->登录的接口的生成token - 用正则表达式或者JSON提取器把token取出来存放在变量中-
--->系统中的其他接口发送请求的时候在信息头把token带上。
1.首先用正则表达式提取token:
接口的响应
2.正则表达式提取token
3.JSON提取器提取token:
系统中的其他接口发送请求的时候要在请求头带上token,把抓取的token引用到信息头管理器即可,有些系统是把token放在body中的,要灵活应用。
接口B请求成功了