到這里您已經(jīng)完成了一個關(guān)聯(lián)了,接下來就是執(zhí)行腳本,是否能成功運(yùn)行,假如還是有問題,就要檢查看看是否還需要再做另一個關(guān)聯(lián)。
關(guān)于 web_reg_save_param 函數(shù)
對于關(guān)聯(lián)(correlation)來說,web_reg_save_param是最重要的一個函數(shù),其功能是在下載的網(wǎng)頁內(nèi)容中,透過設(shè)定的邊界字符串,找出特定的數(shù)據(jù)并將其儲存在一個參數(shù)中,以供后續(xù)腳本使用。
接下來將針對web_reg_save_param做比較詳細(xì)的說明。
Service and registration type function
web_reg_save_param是一個Service function。service function主要是用來完成一些特殊的工作的,如關(guān)聯(lián)、設(shè)定proxy、提供認(rèn)證信息等,當(dāng)其作用時,不會對網(wǎng)頁的內(nèi)容做任何的修改。
web_reg_save_param同時也是一個registration type function (只要函數(shù)名稱中包含_reg_的字眼,表示其為registration type function)。registration type function意味著其真正作用的時機(jī)是在下一個action function完成時執(zhí)行的。舉例來說,當(dāng)某個web_url執(zhí)行時所接收到的網(wǎng)頁內(nèi)容中包含了要做關(guān)聯(lián)的動態(tài)數(shù)據(jù),則必須將web_reg_save_param放在此web_url之前,則web_reg_save_param會在web_url執(zhí)行完畢后,也就是網(wǎng)頁內(nèi)容都下載完后,再執(zhí)行web_reg_save_param找尋要做關(guān)聯(lián)的動態(tài)數(shù)據(jù)并建立參數(shù)。
所以要記住一點(diǎn),要使用registration type function時,要注意其放置的位置必須在要作用的action function之前。
語法
int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
參數(shù)說明
ParamName:存放動態(tài)數(shù)據(jù)的參數(shù)名稱
list of Attributes:其它屬性,包含 Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, 以及 SaveLen。屬性值不分大小寫,例如 Search=all。以下將詳細(xì)說明每個屬性值的意義:
- Notfound:指定當(dāng)找不到要找的動態(tài)數(shù)據(jù)時該怎么處置。
- Notfound=error:當(dāng)找不到動態(tài)數(shù)據(jù)時,發(fā)出一個錯誤訊息。假如沒設(shè)定此屬性,此為LoadRunner的默認(rèn)值。
- Notfound=warning:當(dāng)找不到動態(tài)數(shù)據(jù)時,不發(fā)出錯誤訊息,只發(fā)出警告,腳本也會繼續(xù)執(zhí)行下去不會中斷。在對角本除錯時,可以使用此屬性值。
- LB:動態(tài)數(shù)據(jù)的左邊界字符串。此屬性質(zhì)是必須要有的,而且區(qū)分大小寫。
- RB:動態(tài)數(shù)據(jù)的右邊界字符串。此屬性質(zhì)是必須要有的,而且區(qū)分大小寫。
- RelFrameID:相對于URL而言,欲搜尋的網(wǎng)頁的Frame。此屬性質(zhì)可以是All或是數(shù)字,而且可有可無。
- Search:搜尋的范圍。可以是Headers(只搜尋headers)、Body(只搜尋body部分,不搜尋header)、Noresource(只搜尋body部分,不搜尋header與resource)或是All(搜尋全部范圍,此為默認(rèn)值)。此屬性質(zhì)可有可無。
- ORD:指明從第幾次出現(xiàn)的左邊界開始才是要擷取的數(shù)據(jù)。此屬性質(zhì)可有可無,默認(rèn)值是1。假如值為All,則所有找到符合的數(shù)據(jù)會儲存在數(shù)組中。
- SaveOffset:當(dāng)找到符合的動態(tài)數(shù)據(jù)時,從第幾個字符開始才開始儲存到參數(shù)中。此屬性質(zhì)不可為負(fù)數(shù),其默認(rèn)值為0。
- Convert:可能的值有二種:
- HTML_TO_URL: 將HTML-encoded數(shù)據(jù)轉(zhuǎn)成URL-encoded數(shù)據(jù)格式
- HTML_TO_TEXT:將HTML-encoded數(shù)據(jù)轉(zhuǎn)成純文字?jǐn)?shù)據(jù)格式
SaveLen:從offect開始算起,到指定的長度內(nèi)的字符串,才儲存到參數(shù)中。此參數(shù)可有可無,默認(rèn)值是-1,表示儲存到結(jié)尾整個字符串。
范例
web_reg_save_param("A", "LB/ic=<a href=", "RB='>", "Ord=All", LAST);
nner會搜尋網(wǎng)頁中所有以「<a href=」開頭,且以「’>」結(jié)束,當(dāng)中包含的字符串,并且儲存在「A」參數(shù)中。
Tips and Tricks
以下提供一些關(guān)聯(lián)的常見問題:
- 如何打印出參數(shù)值?
lr_output_message這二個函數(shù)來做到。例如:
lr_output_message(“Value Captured = %s”, lr_eval_string(“{ParameterName}”));
lr_eval_string與lr_output_message函數(shù)的使用說明請參考LoadRunner Online Function Reference。
- 在腳本的data目錄下找不到路制時的快照(snapshot)
造成在腳本的data目錄下找不到路制時的快照(snapshot)的可能原因如下:- 腳本是由VuGen 6.02或更早的版本所錄制的
- 匯入的Action不會包含快照(snapshot)的檔案
- 腳本是儲存在只讀的目錄下,早成VuGen無法儲存執(zhí)行時擷取的快照(snapshot)
- 某些步驟并不會產(chǎn)生快照(snapshot),如瀏覽某個資源
- 快照(snapshot)功能被取消
【Tools】>【General options】>【Correlation】tab >【Save correlation information during replay】
- 開啟WinDiff時出現(xiàn)「File no longer available」的錯誤訊息
WinDiff這個工具有些限制,無法開啟包含空格符的目錄或是腳本,所以建議命名時不要使用空格符,并且盡可能將名稱取短一點(diǎn)。
錄制時突然跳出【Correlation warning】對話窗口
當(dāng)你有勾選自動關(guān)聯(lián)的【Issue a popup message and let me decide online】選項(xiàng),當(dāng)VuGen發(fā)現(xiàn)有可能要做關(guān)聯(lián)的數(shù)據(jù)時,就會跳出【Correlation warning】的窗口,詢問你要做關(guān)聯(lián)(Correlation in script)還是要忽略(Ignore)。
另外你也可以勾選【Perform correlation in script】,讓VuGen自動作關(guān)聯(lián),不會再跳出詢問窗口。
或是勾選【Disable correlation engine】,關(guān)閉自動關(guān)聯(lián)的功能。

如何手動啟動「Scan action for correlation」的功能
要手動啟動「Scan action for correlation」的功能,請先執(zhí)行腳本一次后,點(diǎn)選【Vuser】>【Scan Action for Correlation】。
執(zhí)行完腳本后并未出現(xiàn)【Scan Action for Correlation】窗口
要啟用【Scan Action for Correlation】功能,請點(diǎn)選【Tools】>【General options】>【Correlation】tab,勾選【Show Scan for correlation popup after replay of Vuser】選項(xiàng)。