手動關聯的一般步驟:
1、錄製兩次相同的指令碼;
2、使用loadrunner自帶的WDiff(Tools->Compare with script)工具,找出兩次指令碼錄製的不同之處,判斷是否需要關聯;
3、確定插入關聯的位置;
4、在指令碼檢視中插入web_reg_save_param函式建立手動關聯;
5、將指令碼中需要建立關聯的資料用引數替換;
6、驗證關聯的正確性。
下面詳細介紹步驟:
1、錄製完一次指令碼並儲存,這裡儲存為basic_tutorial_1(錄製的步驟根據loadrunner 11 幫助文件上的例項);
2、再次進行相同的步驟進行第二次錄製,儲存為basic_tutorial_2,點選【Tools】->【Compare with script】,彈出檔案選擇框,選中名為basic_tutorial_1的檔案。
3、WDiff會開啟,同時顯示二份指令碼,並顯示有差異的地方。WDiff會以一整行黃色標示有差異的指令碼,並且以紅色的字型顯示真正差異的文字。(假如沒看到紅色字型,請點選【Options】>【View】>【Show Inline Differences】)。
檢視二份指令碼中差異的部份,每一個差異都可能是需要做關聯的地方,lr_thik_time部分的差異可以忽略。
找到不同的部分,然後在輸出視窗的【Generation Log】中按Ctrl+F,在查詢視窗中貼上差異部分的內容,點選查詢找到後,檢視該部分的資訊,確認是客戶端的請求資訊還是伺服器回應的資訊。
如果出現在****** Request Header For Transaction With Id 3 ******
等類似的部分中,那證明是客戶端發出的請求,這裡是不需要做關聯;一般做的關聯都是出現在****** Response Body For Transaction With Id 13 ******
等類似的Response部分的內容,找到這個資訊,記錄如下內容:
A、記錄這個不同資料之前的內容和之後的內容,如這裡的不同資料是帶加粗部分(<input type=hidden name=userSession value=106846.044795464ftQfiQDptcQVzzzHDcQHfpDzAfHf>)那麼它的左邊界就是”<input type=hidden name=userSession value=”,而右邊界就是”>”(邊界內容越詳細越好)。
B、記錄這個不同資料出現的位置,是Header還是Body。
4、確認插入關聯的位置:
需要重新執行一次指令碼,執行前先點選【Vuser(U)】->【Run-time Settings】->[Log],將【Log】中的【Enable logging】勾選上,選擇【Extended log】,將【Extended log】中的選項全部勾選上。
重新執行完指令碼後,點選輸出視窗的【Replay Log】,按CTRL+F,粘帖上<input type=hidden name=userSession value=然後找到兩次錄製指令碼不同點的位置,即如下這一行資料,雙擊此處,在指令碼中的位置之前就是需要插入關聯函式的地方。
Action.c(4): <input type=hidden name=userSession value=106853.155690563ftQzcfQpVQfiDDDDDcQHHpfffVHf>\n
5、插入關聯函式:
右擊上一步驟中,搜尋到的指令碼位置,在其上方的空白處右擊,【插入】->【新建步驟】,彈出新增步驟輸入框,輸入“web_reg_save_param”,點選確定,彈出將資料儲存到引數中輸入框,在引數名中輸入“UserSession”,左邊界“<input type=hidden name=userSession value=”,右邊界”>”,勾選搜尋範圍,選擇“正文”,然後點選確定。
成功插入後應看到如下的正確函式:
web_reg_save_param("UserSession",
"LB=input type=hidden name=userSession value=",
"RB=>",
"Search=Body",
LAST);
6、將指令碼中有用到關聯的資料,用引數代替:
如發出請求的引數如下,那麼將原來伺服器返回的動態值使用{ UserSession } 來替換:
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={UserSession}", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=JSFormSubmit", "Value=on", ENDITEM,
"Name=login.x", "Value=48", ENDITEM,
"Name=login.y", "Value=4", ENDITEM,
LAST);
7、最後驗證關聯的正確性:
回放指令碼,驗證關聯的正確性。
本作品採用《CC 協議》,轉載必須註明作者和本文連結