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&lt=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的解析与认证相关推荐

  1. jmeter 实现token的解析与认证

    #jmeter 实现token的解析与认证 jmeter版本:4.0 ##问题描述: 1.当前系统通过token实现系统安全验证,登录成功后,token被存储在返回体中(reaponse body), ...

  2. java 用户登录token_Java,SpringBoot采用token方式实现登录认证

    IT小奋斗2021-01-13 21:48:33 Token,令牌,访问资源的凭证,每次访问带上这个令牌,就可识别出用户身份. JWT (JsonWebToken),是实现token技术的一种解决方案 ...

  3. java用户的登录图片_Java 如何用 token 做用户登录认证

    1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...

  4. java+登录window域认证网页_Java 如何用 token 做用户登录认证

    1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...

  5. 基于Token的WEB后台认证机制

    转载自:基于Token的WEB后台认证机制 几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和passwor ...

  6. jwt生成token与解析token

    1.生成token与解析token部分代码 pom <!-- token验证 --><dependency><groupId>com.auth0</group ...

  7. jwt:token的解析

    token的解析 我们刚才已经创建了token ,在web应用中这个操作是由服务端进行然后发给客户端,客户端在下次向服务端发送请求时需要携带这个token(这就好像是拿着一张门票一样),那服务端接到这 ...

  8. Python 生成 JWT(json web token) 及 解析方式

    一.关于 jwt 的原理及概念可以自行在网络上搜索了解一下,这里推荐一篇写的比较好的博客 深入了解Json Web Token之概念篇 另附 JWT 的官方文档: https://jwt.io/int ...

  9. JWT生成Token及解析Token

    JWT生成Token详解 [第一部分]历史文章: SpringBoot总结(一)--第一个SpringBoot项目 SpringBoot总结(二)--Spring Boot的自动配置 SpringBo ...

最新文章

  1. 前端页面水印生成实现
  2. 异常和异常处理(windows平台)
  3. 周例会会议、汇报框架
  4. db_files 不要设置的太大,否则影响内存的使用
  5. 干货|SRC漏洞挖掘经验
  6. HEOI 2017 游记
  7. dialog能提交数据吗_你的数据库,能撑起多少并发,有数吗?
  8. JS实现上下左右四方向无间隙滚动
  9. css圆角box(宽度自适应)(百度知道挖出)
  10. 在SQL Server中使用SQL Coalesce函数
  11. [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介
  12. java 一级缓存,MyBatis一级缓存避坑完全指南
  13. IB课程体系的优缺点介绍
  14. 如何将两张图片上下合成一张?
  15. Java学习笔记:SQL数据排序
  16. C++作业5 求和 、数组选择
  17. Wireshark抓包:实例诊断TCP连接问题
  18. 传奇单机架设教程及游戏GM设置方法
  19. 一文让你通俗理解奇异值分解
  20. MySQL定时任务删除数据

热门文章

  1. easyui-datagrid特殊字符不能显示的处理
  2. 记载几个ubuntu的源(heanet,163,eud类的)___不仅仅是ubuntu source
  3. Fn+F12查看response
  4. 《雨的印记》经典的钢琴曲
  5. java字符串转数组,吊打面试官
  6. 人工智能科普教材:初中
  7. unity3D射击游戏
  8. GLM:ChatGLM的基座模型
  9. HALCON几何变换
  10. 动易SiteFactory维护点滴