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解析與認證。

 

說明:非原創,忘記文章鏈接了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM