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解析与认证。

 

说明:非原创,忘记文章链接了

posted on 2020-01-13 14:12  Helianthus720  阅读(1266)  评论(0编辑  收藏  举报

导航