關聯的含義:
如瀏覽器打發送一個網頁A請求,服務器返回這個請求,並且在返回的內容中攜帶一個session id=key,當瀏覽器再送出網頁B的請求時,這時就要用ID=key的數據,服務器才會認為這是合法的請求,並且把網頁B的內容送回給瀏覽器。而我們使用loadrunner進行回放時情景,瀏覽器再送出網頁B的請求時,用的還是當初錄制的ID=key的數據,而不是用服務器新給的ID,這樣就沒有辦法建立通信,,因為每個請求,服務器都會返回新內容,而客戶端也應該獲取到新內容,才能和服務端進行匹配,不然執行腳本失敗
解決方案:
獲取每次請求變化的seesionid,獲取最新的服務端session id
現在我使用loadrunner12 中自帶的的“飛機購票” 進行獲取動態關聯
其實手動關聯,總結,就是自動關聯找不到的內容,或者是你自己想要的自定義內容,使用函數web_reg_save_param_ex("ParamName=text", "LB=<B>sign ", "RB=now</B>", LAST);將想要的內容存到一個lr變量中,給后面的任何值做替換使用。
1.獲取登錄的session
點擊登錄時,查看源,找到變化的seesion id
我們發現我們現在使用userSession 是一個變化的東西(為什么知道會變化,你重新打開頁面對比他的value值就知道了)那我們就需要獲取這個變化值,如何獲取
關聯函數
web_reg_save_param_ex
參數:
ParamName=“項目名” LB=userSession\" value\=" (Lb就代表變化值左邊的參數,注意符號要進行轉義) RB=>"(就是變化值右邊的參數)
2.代碼實現
Action() { //關聯內容 web_reg_save_param_ex("ParamName=userSession", "LB=userSession\" value\=","RB=>",LAST); //打開頁面的url web_url("index.htm", "URL=http://127.0.0.1:1080/WebTours/index.htm", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); //打印關聯的內容 lr_output_message(lr_eval_string("{userSession}")); return 0; }
3.結果展示
在運行一次看獲取結果,同樣獲取了變化的值
關聯的參數就獲取了