LoadRunner11 实现token的解析与认证
LoadRunner11 实现token的解析与认证
问题描述:
1、当前系统通过token实现系统安全验证,登录成功后,token被存储在返回体中(reaponse body),后续服务器请求时,需要将该token添加到请求头部(request header)中;
2、当前web服务访问时,强制限制必须适应谷歌浏览器;
3、Lr录制脚本时,需要通过代理的方式录制,但录制结果回放时,总是提示错误:
Error -26630: HTTP Status-Code=401 (Unauthorized) for ***;
##解决办法:
1、打开录制的脚本,默认为脚本[Script]模式,需要切换到树[Tree]视图;
2、在左侧列表汇总找到系统登录请求[login]步骤,在右侧找到[Response Body]步骤,返回数据为json格式,如下:
{
“code” : 200,
“message” : “操作成功”,
“name”:admin,
“token”:“3E78453A8B17F3A4EBA1B19D7F4D22D4-NKifP2w4mhXI9vl1YZynupr”
}
3、选择[token]的值域内容,右键选择[Create Parameter];切换到[Script]视图,看到如下Lr新增内容:
//Correlation comment - Do not change!Original value='3E78453A8B17F3A4EBA1B19D7F4D22D4-NKifP2w4mhXI9vl1YZynupr' Name ='CorrelationParameter_1'
// Lr自动添加的参数解析算法
web_reg_save_param_ex("ParamName=CorrelationParameter_1","LB=\"","RB=\",",SEARCH_FILTERS,"Scope=Body","RequestUrl=*/login*",LAST);// 修订[token]解析算法:
// 按照默认Lr解析[token]的算法,无法获取到真正的token,需要修订如下:
web_reg_save_param_ex("ParamName=my_token", // 修改参数名,便于记忆"LB=\"token\":\"", // 修改 token 值解析算法"RB=\",",SEARCH_FILTERS,"Scope=Body","RequestUrl=*/login*",LAST);// 登录模块-此部分为Lr自动生成部分,不需要修改;
web_custom_request("login","URL=http://192.168.0.1:8080/test/login","Method=POST","Resource=0","RecContentType=application/json","Referer=http://192.168.0.1:8080/test/index.html","Snapshot=t6.inf","Mode=HTML","EncType=application/json","Body={\"userName\":\"admin\",\"password\":\"123456\"}",LAST);// 新增:将解析出的 token 自动添加在每一个后续请求的头部(request header):
web_add_auto_header("Authorization", "{my_token}"); // 后续的web请求,自动添加token认证:
web_url(***);
web_submit_data(***);
至此完成token解析与认证。
参考:
https://www.cnblogs.com/amy7758/p/5639006.html
文章原文内容如下:
1、token是服务器返回的一个值,
用于验证身份。
因此需要在response body中查找第一次出现token的地方。
2、token是登录时候返回的,因此需要在登录的请求那里找。
3、切换到树图,找到响应的登录操作
3、添加关联之后,脚本中会增加一个语句,它出现在登录之前。
/Correlation comment - Do not change!Original value=‘48d5b44a89864d17b86509a201cc942c‘ Name =‘CorrelationParameter_1‘web_reg_save_param_ex("ParamName=CorrelationParameter_1","LB=:\"","RB=\",",SEARCH_FILTERS,"Scope=Body","RequestUrl=*/authentication*",LAST);web_submit_data("authentication","Action=http://www.moojnn.com/mojingcsp/authentication","Method=POST","TargetFrame=","RecContentType=application/json","Referer=http://www.moojnn.com/user/login.html","Snapshot=t3.inf","Mode=HTML",ITEMDATA,"Name=username", "Value={userName}", ENDITEM,"Name=password", "Value=e10adc3949ba59abbe56e057f20f883e", ENDITEM,EXTRARES,"URL=http://pro.moojnn.com/lib/leaflet/leaflet.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/css/icon/style.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/css/common.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/js/mjchart/theme/mjvi.css?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/js/config.js", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/js/functions.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/js/mjchart/mjvi.min.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/js/common.js?_d=1467120445822", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=../static/js/csp.js?_=1467473737411", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,LAST);web_url("popup-help.html_2","URL=http://www.moojnn.com/user/popup-help.html?from=http%3A%2F%2Fpro.moojnn.com%2Fprojects.html%23%2F%3FMoJing-Token%3D{CorrelationParameter_1}","TargetFrame=","Resource=0","RecContentType=text/html","Referer=http://pro.moojnn.com/projects.html","Snapshot=t4.inf","Mode=HTML",EXTRARES,"URL=http://hm.baidu.com/hm.js?177ebef2f9a9244c738b903eef680a83", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://z6.cnzz.com/stat.htm?id=1253524178&r=http%3A%2F%2Fwww.moojnn.com%2Fuser%2Flogin.html&lg=zh-cn&ntime=1467467462&cnzz_eid=1418985023-1467467462-http%3A%2F%2Fwww.moojnn.com%2F&showp=1366x768&p=http%3A%2F%2Fpro.moojnn.com%2Fprojects.html%23%2F%3FMoJing-Token%3D{CorrelationParameter_1}&t=&h=1&rnd=1141052232", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://pro.moojnn.com/mojing-server/user/login?MoJing-Token={CorrelationParameter_1}", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,"URL=http://hm.baidu.com/hm.gif?cc=0&ck=1&cl=24-bit&ds=1366x768&et=0&fl=22.0&ja=0&ln=zh-CN&lo=0<=1467473654&nv=0&rnd=1523982449&si=177ebef2f9a9244c738b903eef680a83&st=4&su=http%3A%2F%2Fwww.moojnn.com%2Fuser%2Flogin.html&v=1.1.26&lv=3", "Referer=http://pro.moojnn.com/projects.html", ENDITEM,LAST);
LoadRunner11 实现token的解析与认证相关推荐
- jmeter 实现token的解析与认证
#jmeter 实现token的解析与认证 jmeter版本:4.0 ##问题描述: 1.当前系统通过token实现系统安全验证,登录成功后,token被存储在返回体中(reaponse body), ...
- java 用户登录token_Java,SpringBoot采用token方式实现登录认证
IT小奋斗2021-01-13 21:48:33 Token,令牌,访问资源的凭证,每次访问带上这个令牌,就可识别出用户身份. JWT (JsonWebToken),是实现token技术的一种解决方案 ...
- java用户的登录图片_Java 如何用 token 做用户登录认证
1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...
- java+登录window域认证网页_Java 如何用 token 做用户登录认证
1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...
- 基于Token的WEB后台认证机制
转载自:基于Token的WEB后台认证机制 几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和passwor ...
- jwt生成token与解析token
1.生成token与解析token部分代码 pom <!-- token验证 --><dependency><groupId>com.auth0</group ...
- jwt:token的解析
token的解析 我们刚才已经创建了token ,在web应用中这个操作是由服务端进行然后发给客户端,客户端在下次向服务端发送请求时需要携带这个token(这就好像是拿着一张门票一样),那服务端接到这 ...
- Python 生成 JWT(json web token) 及 解析方式
一.关于 jwt 的原理及概念可以自行在网络上搜索了解一下,这里推荐一篇写的比较好的博客 深入了解Json Web Token之概念篇 另附 JWT 的官方文档: https://jwt.io/int ...
- JWT生成Token及解析Token
JWT生成Token详解 [第一部分]历史文章: SpringBoot总结(一)--第一个SpringBoot项目 SpringBoot总结(二)--Spring Boot的自动配置 SpringBo ...
最新文章
- 前端页面水印生成实现
- 异常和异常处理(windows平台)
- 周例会会议、汇报框架
- db_files 不要设置的太大,否则影响内存的使用
- 干货|SRC漏洞挖掘经验
- HEOI 2017 游记
- dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
- JS实现上下左右四方向无间隙滚动
- css圆角box(宽度自适应)(百度知道挖出)
- 在SQL Server中使用SQL Coalesce函数
- [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介
- java 一级缓存,MyBatis一级缓存避坑完全指南
- IB课程体系的优缺点介绍
- 如何将两张图片上下合成一张?
- Java学习笔记:SQL数据排序
- C++作业5 求和 、数组选择
- Wireshark抓包:实例诊断TCP连接问题
- 传奇单机架设教程及游戏GM设置方法
- 一文让你通俗理解奇异值分解
- MySQL定时任务删除数据