
session 是为了保持服务器与客户端的会话状态,在用户登录后,服务器端生成一个sessionID传给客户端;之后的每次会话,客户端只需要传这个sessionID即可不用重新登录,保持在线状态。故服务器端需要保存所有在线的sessionID,从而影响服务器性能! sessionID是存在cookie中的。
token 是为了解决服务器压力,用户登录成功后,服务器端生产token(钥匙和锁)通过 cookie或请求头的方式 传给客户端,再次请求时带上token即可,无状态(服务端通过算法验证钥匙和锁是否正确)。
总之 ,就是两种鉴权方式,通过sessionID或者token,服务器来判断是否是某用户登录后的其他请求。
其他:
2、一个用户在一次会话(打开浏览器,访问服务器,直到浏览器关闭,称为一次会话,严格的说,一次会话应该是依赖 session 的生成机制)上就是一个session_id。
3、每次登录时,总会产生一个token或者sessionID,生成这个的目的是为了每次 *** 作其他接口的时候,会判断当前用户是否登录。
1)cookie的处理
准备:两个接口:一个登录、一个充值
登录接口
充值接口:会失败
1、添加:HTTPCookie管理器,放到最上面。
2、再次运行:就会充值成功。
登录时会有set_Cookie存在
1、添加后置处理器>>>正则表达式提取器
设置:
2、添加:调试取样器
运行结果:已经拿到cookie
3、添加:右击线程组>>添加>>配置元件>>HTTPCookie管理器
设置:
4、添加:JSESSIONID:${正则表达式提取器提取到的变量名}
域:
路径:
5、查看运行结果:
2)token的处理
查询用户信息需要先登录,在查询用户信息的时候需要携带token。
1、在登录接口下面使用正则表达式提取器获取token
登录接口响应数据中返回token。
配置提取器:
2、添加:调试取样器,运行后查看是否可以获取到
3、添加HTTP信息头管理器
运用相关资料
接口测试中,大多接口都需要鉴权,此时就需要使用到登录信息中的token值通过F12查看登录接口,可查看到token字段值,以下是自己整理的获取、设置及引用步骤
可以先确认是否前后端分离开发,是否被重定向,不同的实现方式可以使用不同的token提取方式
1.通过请求登陆接口
请求中的IP、路径、请求参数等根据自己的实际接口内容进行填写
首先确认token位置,我这里登录接口中的uuid就是需要进行参数化的token字段
为login接口添加一个Regular Expression Extractor(正则表达式提取器),通过正则表达式获得到uuid的变量,即token,可添加一个后置处理器Debug PostProcessor查看通过正则获取的uuid是否正确
为login接口添加一个后置处理器BeanShell PostProcessor,将正则表达式内容设置为整个测试计划的全局变量,供其他接口引用该变量,(其他参数想配置全局变量同)
uuid为login接口中通过正则提取出的变量,Uuid为全局变量的名称,后续引用时使用
测试计划内的其他接口均可进行引用,添加一个HTTP信息头管理器(可配置测成整个试计划的,也可在接口中进行添加,若在接口中添加,后边每个接口都需要进行配置),引用的写法如下,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)