Loadrunner手動關聯詳解


Loadrunner手動關聯詳解

一、關聯的含義:

         關聯(correlation):在腳本回放過程中,客戶端發出請求,通過關聯函數所定義的左右邊界值(也就是關聯規則),在服務器所響應的內容中查找,得到相應的值,已變量的形式替換錄制時的靜態值,從而向服務器發出正確的請求,這種動態獲得服務器響應內容的方法被稱作關聯。

二、關聯的過程:

         以登陸場景為例,客戶端發出獲得登錄頁面的請求,服務器端得到該請求后,返回登錄頁面,同時動態生成一個Session Id,當用戶輸入用戶名密碼,請求登錄時,該Session Id同時被發送到服務器端,如果該Session Id在當前會話中有效,那么返回登錄成功的頁面,如果不正確則登錄失敗;在loadrunner第一次錄制過程中會把這個值記錄了下來,但回放時,客戶端發出同樣的請求,而服務器端再一次動態的生成了新的Session Id,與Loadrunner中錄制的Session Id不匹配,此時客戶端發出的請求就會失敗,為了獲得這個動態的Session Id就用到了關聯。

三、關聯的使用:

         LR中對參數關聯分兩種:

         1、自動關聯,比如在錄制好后的腳本中,按CTRL+F8,掃描關聯,將掃描出來的內容關聯即可;如果LR找不到關聯時,就需要手動進行關聯。

         2、手工關聯函數web_reg_save_param,運行腳本時,web_reg_save_param 函數將掃描所訪問的后續 HTML 頁。如果指定左邊界和右邊界,將搜索這些邊界之間的文本。將匹配的內容保存在web_reg_save_param中定義的參數中。

實現過程如下:

web_reg_save_param("outFlightVal",

"LB=outboundFlight value=", "RB= checked >", LAST );

 

web_submit_form("reservations.pl",

"Snapshot=t4.inf",

ITEMDATA,

"Name=depart", "Value=London", ENDITEM,

"Name=departDate", "Value=11/20/2003", ENDITEM,

"Name=arrive", "Value=New York", ENDITEM,

"Name=returnDate", "Value=11/21/2003", ENDITEM,

"Name=numPassengers", "Value=1", ENDITEM,

"Name=roundtrip", "Value=<OFF>", ENDITEM,

"Name=seatPref", "Value=None", ENDITEM,

"Name=seatType", "Value=Coach", ENDITEM,

"Name=findFlights.x", "Value=83", ENDITEM,

"Name=findFlights.y", "Value=16", ENDITEM,

LAST );

 

web_submit_form("reservations.pl_2",

"Snapshot=t5.inf",

ITEMDATA,

"Name=outboundFlight", "Value={outFlightVal}", ENDITEM,

"Name=reserveFlights.x", "Value=92", ENDITEM,

"Name=reserveFlights.y", "Value=10", ENDITEM,

LAST );

定義了搜索范圍LB左邊界值和RB右邊界值,將匹配的內容存放在outFlightVal中,在web_submit_form表單中進行引用。

實例說明:

以下為服務響應表單,對返回的動態值orderId進行關聯:

<input type="hidden" id="orderId" name="orderId"

value="f28958249e141e62312d855ce73252d3"/>

實現如下:

web_reg_save_param("orderId",

   "LB=name=\"orderId\" value=\"",

   "RB=\"",

   LAST);

在服務響應表單中找左邊界是:name="orderId" value="

右邊界是:"

將匹配到的結果賦給orderId。

之后就可以在后續流程中盡情的調用關聯值了。

另外:web_reg_save_param要放在web_submit_form等提交表單函數之前。

web_reg_save_param必須在獲取返回值的操作前面注冊,在獲取返回值的操作后面使用。

保存參數最大不能超過256字節,如果超過256字節請使用int web_set_max_html_param_len(const char *length )函數擴大參數保存范圍。

例如:web_set_max_html_param_len ("1024"); //擴大參數最大保存范圍為1024字節。


免責聲明!

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



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