前面文章我們介紹過,關(guān)聯(lián)是下一次請(qǐng)求用到上一次請(qǐng)求的數(shù)據(jù)或者響應(yīng)結(jié)果,將這些數(shù)據(jù)保存到變量中,這樣下次請(qǐng)求時(shí)直接使用該變量即可。
比如,錄制登錄的時(shí)候,服務(wù)器會(huì)給一個(gè)sessionID進(jìn)行操作,當(dāng)再次回放腳本的時(shí)候服務(wù)器又會(huì)給一個(gè)全新的認(rèn)證碼,而腳本錄制是固定的,也就是某一次登錄時(shí)的sessionID,回放的時(shí)候會(huì)生成新的sessionID,從而導(dǎo)致腳本執(zhí)行時(shí)失敗。為了確保腳本回放成功,需要動(dòng)態(tài)的獲取sesiionID,再將這個(gè)動(dòng)態(tài)數(shù)據(jù)發(fā)回給服務(wù)器。這時(shí)就需要用到關(guān)聯(lián),將服務(wù)器返回的數(shù)據(jù)進(jìn)行處理并保存為參數(shù)。
下面我們介紹loadrunner常用的兩種關(guān)聯(lián)方法:
VuGen提供的自動(dòng)關(guān)聯(lián)處理策略,它的原理是對(duì)同一腳本運(yùn)行和錄制時(shí)的所有服務(wù)器返回進(jìn)行比較,來自動(dòng)查找變化的部分,并且提示是否生成關(guān)聯(lián)。
注意:使用自動(dòng)關(guān)聯(lián)前必須先運(yùn)行一次腳本。
以WebTours為例,流程如下:
1.訪問WebTours首頁,點(diǎn)擊administration 鏈接,勾選以下配置項(xiàng)
???????
2.在左側(cè)的框中單擊查看框架源碼,會(huì)看到有一串碼,這個(gè)就是需要關(guān)聯(lián)的數(shù)據(jù)
3.錄制腳本
4.單擊Design Studio,進(jìn)行關(guān)聯(lián):
有數(shù)據(jù)的情況下,單擊Correlate按鈕后,則生成一個(gè)關(guān)聯(lián),關(guān)聯(lián)的前后內(nèi)容和所屬Action也被列出來。自動(dòng)關(guān)聯(lián)結(jié)束。腳本中會(huì)自動(dòng)添加關(guān)聯(lián)函數(shù)web_reg_save_param_*函數(shù)并將被關(guān)聯(lián)的內(nèi)容保存到一個(gè)參數(shù)中去
5.action腳本中生成了如下函數(shù):
/*Correlation comment - Do not change! Original value='126029.321425678zticzDDpccAiDDDDDiiQfpHQQDcf' Name ='userSession' Type ='ResponseBased'*/
web_reg_save_param_regexp(
"ParamName=userSession",//存儲(chǔ)關(guān)聯(lián)內(nèi)容的變量名
"RegExp=name=\"userSession\"\\ value=\"(.*?)\"/>\\\n<table\\ border",
SEARCH_FILTERS,//正則表達(dá)式,包含一個(gè)分組
"Scope=Body",//在http協(xié)議哪個(gè)部分進(jìn)行查找
"IgnoreRedirections=No",//是否忽略重定向,No:不忽略
"RequestUrl=*/nav.pl*",//適用請(qǐng)求的url類型
LAST);
loadruuner認(rèn)為不需要關(guān)聯(lián)的數(shù)據(jù),但是又想取出來,這時(shí)就用手動(dòng)關(guān)聯(lián)。使用web_reg_save_param函數(shù)建立關(guān)聯(lián)
注意:
關(guān)聯(lián)函數(shù)是一個(gè)注冊(cè)型函數(shù),需要告訴VuGen下一個(gè)請(qǐng)求返回是需要被處理的。所以該函數(shù)必須要寫在請(qǐng)求前,如下,否則就會(huì)提示無法獲得關(guān)聯(lián)結(jié)果的錯(cuò)誤。
1.???????函數(shù)定義:
int web_reg_save_param( const char *ParamName, <List of Attributes>, LAST );
第一部分(const char *ParamName):參數(shù)名,用雙引號(hào)括起來,逗號(hào)分開
第二部分(<List of Attributes>):包括LB、RB、RelFameID、Ord、Search、SaveOffiset、SaveLen等。
第三部分(LAST ):結(jié)束標(biāo)志。
通過按F1 鍵打開幫助文檔,搜索此函數(shù),查看具體用法。
2.例子:手動(dòng)關(guān)聯(lián)首頁的administration
web_reg_save_param("administration",
"LB=\<b\>", "RB=\<\/b\>\<\/A\> link", LAST );
web_reg_save_param("admin",
"LB=admin.pl\" target=body ><b>", "RB=</b></A> link.", LAST );
web_url("WebTours",
"URL=http://localhost:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
聯(lián)系客服