轉(zhuǎn)帖|使用教程|編輯:蔣永|2016-10-12 10:28:27.000|閱讀 1853 次
概述:今天給大家?guī)鞮oadRunner手動關(guān)聯(lián)的教程,分別從關(guān)聯(lián)的含義、過程和使用三個方面講解。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
一、關(guān)聯(lián)的含義:
關(guān)聯(lián)(correlation):在腳本回放過程中,客戶端發(fā)出請求,通過關(guān)聯(lián)函數(shù)所定義的左右邊界值(也就是關(guān)聯(lián)規(guī)則),在服務(wù)器所響應(yīng)的內(nèi)容中查找,得到相應(yīng)的值,已變量的形式替換錄制時的靜態(tài)值,從而向服務(wù)器發(fā)出正確的請求,這種動態(tài)獲得服務(wù)器響應(yīng)內(nèi)容的方法被稱作關(guān)聯(lián)。
二、關(guān)聯(lián)的過程:
以登陸場景為例,客戶端發(fā)出獲得登錄頁面的請求,服務(wù)器端得到該請求后,返回登錄頁面,同時動態(tài)生成一個Session Id,當(dāng)用戶輸入用戶名密碼,請求登錄時,該Session Id同時被發(fā)送到服務(wù)器端,如果該Session Id在當(dāng)前會話中有效,那么返回登錄成功的頁面,如果不正確則登錄失敗;在loadrunner第一次錄制過程中會把這個值記錄了下來,但回放時,客戶端發(fā)出同樣的請求,而服務(wù)器端再一次動態(tài)的生成了新的Session Id,與Loadrunner中錄制的Session Id不匹配,此時客戶端發(fā)出的請求就會失敗,為了獲得這個動態(tài)的Session Id就用到了關(guān)聯(lián)。
三、關(guān)聯(lián)的使用:
LR中對參數(shù)關(guān)聯(lián)分兩種:
1、自動關(guān)聯(lián),比如在錄制好后的腳本中,按CTRL+F8,掃描關(guān)聯(lián),將掃描出來的內(nèi)容關(guān)聯(lián)即可;如果LR找不到關(guān)聯(lián)時,就需要手動進(jìn)行關(guān)聯(lián)。
2、手工關(guān)聯(lián)函數(shù)web_reg_save_param,運(yùn)行腳本時,web_reg_save_param 函數(shù)將掃描所訪問的后續(xù) HTML 頁。如果指定左邊界和右邊界,將搜索這些邊界之間的文本。將匹配的內(nèi)容保存在web_reg_save_param中定義的參數(shù)中。
實現(xiàn)過程如下:
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右邊界值,將匹配的內(nèi)容存放在outFlightVal中,在web_submit_form表單中進(jìn)行引用。
實例說明:
以下為服務(wù)響應(yīng)表單,對返回的動態(tài)值orderId進(jìn)行關(guān)聯(lián):
<input type="hidden" id="orderId" name="orderId"
value="f28958249e141e62312d855ce73252d3"/>
實現(xiàn)如下:
web_reg_save_param("orderId",
"LB=name="orderId" value="",
"RB="",
LAST);
在服務(wù)響應(yīng)表單中找左邊界是:name="orderId" value="
右邊界是:"
將匹配到的結(jié)果賦給orderId。
之后就可以在后續(xù)流程中盡情的調(diào)用關(guān)聯(lián)值了。
另外:web_reg_save_param要放在web_submit_form等提交表單函數(shù)之前。
web_reg_save_param必須在獲取返回值的操作前面注冊,在獲取返回值的操作后面使用。
保存參數(shù)最大不能超過256字節(jié),如果超過256字節(jié)請使用int web_set_max_html_param_len(const char *length )函數(shù)擴(kuò)大參數(shù)保存范圍。
例如:web_set_max_html_param_len ("1024"); //擴(kuò)大參數(shù)最大保存范圍為1024字節(jié)。
本文轉(zhuǎn)自()
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn