問題描述:
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解析與認證。
說明:非原創,忘記文章鏈接了