zoukankan      html  css  js  c++  java
  • 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解析与认证。

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

    move on
  • 相关阅读:
    ZooKeeper实现配置中心的实例(原生API实现)(转)
    com.101tec.ZKClient实现中的subscribeDataChanges设置的监听器事件不回调的问题研究
    Spring Framework体系结构简介
    Spring MVC中@RequestMapping注解使用技巧(转)
    Tomcat配置文件server.xml(转)
    Ubuntu 16.04配置VNC进行远程桌面连接
    Eclipse查看方法/类调用的方法
    MySQL Workbench查看和修改表字段的Comment值
    MySQL常用函数(转)
    MySQL大小写问题的简单说明(关键字/函数/表名)(转)
  • 原文地址:https://www.cnblogs.com/amy720/p/12187015.html
Copyright © 2011-2022 走看看