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&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);
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值