日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]详细介绍如何做关联

發(fā)布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]详细介绍如何做关联 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如何在腳本中做關(guān)聯(lián) (Correlation)
當(dāng)錄制腳本時,VuGen會攔截client端(瀏覽器)與server端(網(wǎng)站服務(wù)器)之間的對話,并且通通記錄下來,產(chǎn)生腳本。在VuGen的Recording Log中,您可以找到瀏覽器與服務(wù)器之間所有的對話,包含通訊內(nèi)容、日期、時間、瀏覽器的請求、服務(wù)器的響應(yīng)內(nèi)容等等。腳本和Recording Log最大的差別在于,腳本只記錄了client端要對server端所說的話,而Recording Log則是完整紀(jì)錄二者的對話。

當(dāng)執(zhí)行腳本時,您可以把VuGen想象成是一個演員,它偽裝成瀏覽器,然后根據(jù)腳本,把當(dāng)初真的瀏覽器所說過的話,再對網(wǎng)站伺服器重新說一遍,VuGen企圖騙過服務(wù)器,讓服務(wù)器以為它就是當(dāng)初的瀏覽器,然后把網(wǎng)站內(nèi)容傳送給VuGen。
所以紀(jì)錄在腳本中要跟服務(wù)器所說的話,完全與當(dāng)初錄制時所說的一樣,是寫死的(hard-coded)。這樣的作法在遇到有些比較聰明的服務(wù)器時,還是會失效。這時就需要透過「關(guān)聯(lián)(correlation)」的做法來讓VuGen可以再次成功地騙過服務(wù)器。
何謂關(guān)聯(lián)(correlation)?
所謂的關(guān)聯(lián)(correlation)就是把腳本中某些寫死的(hard-coded)數(shù)據(jù),轉(zhuǎn)變成是擷取自服務(wù)器所送的、動態(tài)的、每次都不一樣的數(shù)據(jù)。
舉一個常見的例子,剛剛提到有些比較聰明的服務(wù)器,這些服務(wù)器在每個瀏覽器第一次跟它要數(shù)據(jù)時,都會在數(shù)據(jù)中夾帶一個唯一的辨識碼,接下來就會利用這個辨識碼來辨識跟它要數(shù)據(jù)的是不是同一個瀏覽器。一般稱這個辨識碼為Session ID。對于每個新的交易,服務(wù)器都會產(chǎn)生新的Session ID給瀏覽器。這也就是為什么執(zhí)行腳本會失敗的原因,因為VuGen還是用舊的Session ID向服務(wù)器要數(shù)據(jù),服務(wù)器會發(fā)現(xiàn)這個Session ID是失效的或是它根本不認(rèn)識這個Session ID,當(dāng)然就不會傳送正確的網(wǎng)頁數(shù)據(jù)給VuGen了。
下面的圖示說明了這樣的情形:
當(dāng)錄制腳本時,瀏覽器送出網(wǎng)頁A的請求,服務(wù)器將網(wǎng)頁A的內(nèi)容傳送給瀏覽器,并且夾帶了一個ID=123的數(shù)據(jù),當(dāng)瀏覽器再送出網(wǎng)頁B的情求時,這時就要用到ID=123的數(shù)據(jù),服務(wù)器才會認(rèn)為這是合法的請求,并且把網(wǎng)頁B的內(nèi)容送回給瀏覽器。
在執(zhí)行腳本時會發(fā)生什么狀況?瀏覽器再送出網(wǎng)頁B的請求時,用的還是當(dāng)初錄制的ID=123的數(shù)據(jù),而不是用服務(wù)器新給的ID=456,整個腳本的執(zhí)行就會失敗。

要對付這種服務(wù)器,我們必須想辦法找出這個Session ID到底是什么、位于何處,然后把它擷取下來,放到某個參數(shù)中,并且取代掉腳本中有用到Session ID的部份,這樣就可以成功騙過服務(wù)器,正確地完成整個交易了。
哪些錯誤代表著我應(yīng)該做關(guān)聯(lián)(correlation)?
假如腳本需要關(guān)聯(lián)(correlation),在還沒做之前是不會執(zhí)行通過的,也就是說會有錯誤訊息發(fā)生。不過,很不幸地,并沒有任何特定的錯誤訊息是和關(guān)聯(lián)(correlation)有關(guān)系的。會出現(xiàn)什么錯誤訊息,與系統(tǒng)實做的錯誤處理機制有關(guān)。錯誤訊息有可能會提醒您要重新登入,但是也有可能直接就顯示HTTP 404的錯誤訊息。
要如何做關(guān)聯(lián)(correlation)?
關(guān)聯(lián)(correlation)函數(shù)
關(guān)聯(lián)(correlation)會用到下列的函數(shù):
? web_reg_save_param:這是最新版,也是最常用來做關(guān)聯(lián)(correlation)的函數(shù)。
語法:
web_reg_save_param ( “Parameter Name” , < list of Attributes >, LAST );
? web_create_html_param、web_create_html_param_ex:這二個函數(shù)主要是保留作為向前兼容的目的的。建議使用 web_reg_save_param 函數(shù)。
詳細用法請參考使用手冊。在VuGen中點選【Help】>【Function reference】>【Contexts】>【Web and Wireless Vuser Functions】>【Correlation Functions】。
如何找出要關(guān)聯(lián)(correlation)數(shù)據(jù)
簡單的說,每一次執(zhí)行時都會變動的值,就有可能需要做關(guān)聯(lián)(correlation)。
VuGen提供二種方式幫助您找出需要做關(guān)聯(lián)(correlation)的值:
1. 自動關(guān)聯(lián)
2. 手動關(guān)聯(lián)
自動關(guān)聯(lián)
VuGen內(nèi)建自動關(guān)聯(lián)引擎(auto-correlation engine),可以自動找出需要關(guān)聯(lián)的值,并且自動使用關(guān)聯(lián)函數(shù)建立關(guān)聯(lián)。
自動關(guān)聯(lián)提供下列二種機制:
? Rules Correlation:在錄制過程中VuGen會根據(jù)訂定的規(guī)則,實時自動找出要關(guān)聯(lián)的值。規(guī)則來源有兩種:
o 內(nèi)建(Built-in Correlation):
VuGen已經(jīng)針對常用的一些應(yīng)用系統(tǒng),如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,內(nèi)建關(guān)聯(lián)規(guī)則,這些應(yīng)用系統(tǒng)可能會有一種以上的關(guān)聯(lián)規(guī)則。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中啟用關(guān)聯(lián)規(guī)則,則當(dāng)錄制這些應(yīng)用系統(tǒng)的腳本時,VuGen會在腳本中自動建立關(guān)聯(lián)。
您也可以在【Recording Options】>【Internet Protocol】>【Correlation】檢視每個關(guān)聯(lián)規(guī)則的定義。
o 使用者自訂(User-defined Rules Correlation):
除了內(nèi)建的關(guān)聯(lián)規(guī)則之外,使用者也可以自訂關(guān)聯(lián)規(guī)則。您可以在【Recording Options】>【Internet Protocol】>【Correlation】建立新的關(guān)聯(lián)規(guī)則。
? Correlation Studio:有別于Rules Correlation,Correlation Studio則是在執(zhí)行腳本后才會建立關(guān)聯(lián),也就是說當(dāng)錄制完腳本后,腳本至少須被執(zhí)行過一次,Correlation Studio才會作用。Correlation Studio會嘗試找出錄制時與執(zhí)行時,服務(wù)器響應(yīng)內(nèi)容的差異部分,藉以找出需要關(guān)聯(lián)的數(shù)據(jù),并建立關(guān)聯(lián)。
Rule Correlation
請依照以下步驟使用Rule Correlation:
1. 啟用auto-correlation
1. 點選VuGen的【Tools】>【Recording Options】,開啟【Recording Options】對話窗口,選取【Internet Protocol】>【Correlation】,勾選【Enable correlation during recording】,以啟用自動關(guān)聯(lián)。
2. 假如錄制的應(yīng)用系統(tǒng)屬于內(nèi)建關(guān)聯(lián)規(guī)則的系統(tǒng),如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,請勾選相對應(yīng)的應(yīng)用系統(tǒng)。
3. 或者也可以針對錄制的應(yīng)用系統(tǒng)加入新的關(guān)聯(lián)規(guī)則,此即為使用者自訂的關(guān)聯(lián)規(guī)則。
4. 設(shè)定當(dāng)VuGen偵測到符合關(guān)聯(lián)規(guī)則的數(shù)據(jù)時,要如何處理:
? 【Issue a pop-up message and let me decide online】:跳出一個訊息對話窗口,詢問您是否要建立關(guān)聯(lián)。
? 【Perform correlation in sceipt】:直接自動建立關(guān)聯(lián)
2. 錄制腳本
開始錄制腳本,在錄制過程中,當(dāng)VuGen偵測到符合關(guān)聯(lián)規(guī)則的數(shù)據(jù)時,會依照設(shè)定建立關(guān)聯(lián),您會在腳本中看到類似以下的腳本,此為BroadVision應(yīng)用系統(tǒng)建立關(guān)聯(lián)的例子,在腳本批注部分可以看到關(guān)聯(lián)前的數(shù)據(jù)為何。

3. 執(zhí)行腳本驗證關(guān)聯(lián)是OK的。
Correlation Studio
當(dāng)錄制的應(yīng)用系統(tǒng)不屬于VuGen預(yù)設(shè)支持的應(yīng)用系統(tǒng)時,Rule Correlation可能既無法發(fā)揮作用,這時可以利用Correlation Studio來做關(guān)聯(lián)。
Correlation Studio會嘗試找出錄制時與執(zhí)行時,服務(wù)器響應(yīng)內(nèi)容的差異部分,藉以找出需要關(guān)聯(lián)的數(shù)據(jù),并建立關(guān)聯(lián)。
使用Correlation Studio的步驟如下:
1. 錄制腳本并執(zhí)行
2. 執(zhí)行完畢后,VuGen會跳出下面的【Scan Action for Correlation】窗口,詢問您是否要掃描腳本并建立關(guān)聯(lián),按下【Yes】按鈕。

3. 掃描完后,可以在腳本下方的【Correlation Results】中看到掃描的結(jié)果。

4. 檢查一下掃瞄的結(jié)果后,選擇要做關(guān)聯(lián)的數(shù)據(jù),然后按下【Correlate】按鈕,一筆一筆做,或是按下【Correlate All】讓VuGen一次就對所有的數(shù)據(jù)建立關(guān)聯(lián)。
注意:由于Correlation Studio會找出所有有變動的數(shù)據(jù),但是并不是所有的數(shù)據(jù)都需要做關(guān)聯(lián),所以不建議您直接用【Correlate All】。
5. 一般來說,您必須一直重復(fù)步驟1~4直到所有需要做關(guān)聯(lián)的數(shù)據(jù)都找出來為止。因為有時前面的關(guān)聯(lián)還沒做好之前,將無法執(zhí)行到后面需要做關(guān)聯(lián)的部份。
有可能有些需要做關(guān)聯(lián)的動態(tài)數(shù)據(jù),連Correlation Studio都無法偵測出來,這時您就需要自行做手動關(guān)聯(lián)了。
手動關(guān)聯(lián)
手動關(guān)聯(lián)的執(zhí)行過程大致如下:
1. 使用相同的業(yè)務(wù)流程與數(shù)據(jù),錄制二份腳本
2. 使用WinDiff工具協(xié)助找出需要關(guān)聯(lián)的數(shù)據(jù)
3. 使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián)
4. 將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),以參數(shù)取代
接下來將詳細的說明如何執(zhí)行每個步驟
使用相同的業(yè)務(wù)流程與數(shù)據(jù),錄制二份腳本
1. 先錄制一份腳本并存檔。
2. 依照相同的操作步驟與數(shù)據(jù)錄制第二份腳本并存盤。注意,所有的步驟和輸入的數(shù)據(jù)一定都要一樣,這樣才能找出由服務(wù)器端產(chǎn)生的動態(tài)數(shù)據(jù)。
有時候會遇到真的無法使用相同的輸入數(shù)據(jù),那您也要記住您使用的輸入數(shù)據(jù),到時才能判斷是您輸入的數(shù)據(jù),還是變動的數(shù)據(jù)。
使用WinDiff工具協(xié)助找出需要關(guān)聯(lián)的數(shù)據(jù)
1. 在第二份腳本中,點選VuGen的【Tools】>【Compare with Vuser…】,并選擇第一份腳本。
2. 接著WinDiff會開啟,同時顯示二份腳本,并顯示有差異的地方。WinDiff會以一整行黃色標(biāo)示有差異的腳本,并且以紅色的字體顯示真正差異的文字。(假如沒看到紅色字體,請點選【Options】>【View】>【Show Inline Differences】)。
3. 逐一檢視二份腳本中差異的部份,每一個差異都可能是需要做關(guān)聯(lián)的地方。選取差異的腳本,然后復(fù)制。
在復(fù)制時,有時并不需要取整行腳本,可能只會選取腳本中的一部分。
注意:請忽略lr_thik_time的差異部份,因為lr_thik_time是用來模擬每個步驟之間使用者思考延遲的時間。

4. 接著要在Recording Log(單一protocol)或是Generation Log(多重protocol)中找這個值。將鼠標(biāo)光標(biāo)點到Recording Log的第一行開頭,按下Ctrl+F,開啟【Find】窗口,貼上剛剛復(fù)制的腳本,找出在Recording Log第一次出現(xiàn)的位置。

?結(jié)果會有二種:
o 在Recording Log中找不到要找的數(shù)據(jù),這時請先確認(rèn)您找對了腳本,畢竟現(xiàn)在開啟了二個幾乎一樣的腳本,很容易弄錯。
o 在Recording Log中找到了要找的數(shù)據(jù),這時要確認(rèn)數(shù)據(jù)是從服務(wù)器端傳送過來的。首先可以先檢查數(shù)據(jù)的標(biāo)頭,從標(biāo)頭的Receiving response可以知道數(shù)據(jù)是從服務(wù)器端傳送到client端的。假如此數(shù)據(jù)第一次出現(xiàn)是在Sending request中,則表示此數(shù)據(jù)是由client端產(chǎn)生,不需要做關(guān)聯(lián),但是有可能需要做參數(shù)化(parameterized)。
您要找的標(biāo)頭格式如下:
*** [tid=b9 Action1 2] Receiving response from host astra.merc-int.com:80 ( 25/11/2002 12:04:00 )

5. 現(xiàn)在您已經(jīng)找到錄制二次都不一樣,而且是由服務(wù)器所產(chǎn)生的動態(tài)數(shù)據(jù)了,而此數(shù)據(jù)極有可能需要做關(guān)聯(lián)。
使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián)
在找到是由服務(wù)器所產(chǎn)生的動態(tài)數(shù)據(jù)之后,接下來要做的就是找出適當(dāng)?shù)奈恢?#xff0c;使用web_reg_save_param函數(shù),將這個動態(tài)數(shù)據(jù)擷取到某個參數(shù)中。
1. 要在哪里使用web_reg_save_param函數(shù)?
在之前的步驟,我們已經(jīng)在Execution Log找到可能需要關(guān)聯(lián)的動態(tài)數(shù)據(jù)。在Execution Log中選取動態(tài)數(shù)據(jù)前的文字然后復(fù)制,我們將會利用這段文字,來幫助我們找出要關(guān)聯(lián)的動態(tài)數(shù)據(jù)。

不過在這之前我們要先找出使用web_reg_save_param函數(shù)的正確位置,所以我們要再重新執(zhí)行一遍腳本,而且這次會開啟所有的Log。
1. 在VuGen中點選【Vuser】>【Run-Time Settings】。
2. 點選【General】>【Log】。
3. 勾選【Enable logging】、【Always sends messages】、【Extended log】,以及【Extended log】下的所有選項。
4. 按下【OK】就可以執(zhí)行腳本了。
執(zhí)行完腳本之后,在Execution Log中搜尋剛剛復(fù)制的字符串。找到字符串后,在字符串前面會有A.tion1.c(7),這個7就是到時候要插入web_reg_save_param函數(shù)的位置,也就是要插入到腳本的第7行。
在腳本的第7行前插入一行空白行,然后輸入
web_reg_save_param(“UserSession”,
“UserSession” 這個 “UserSession” 就是到時要使用的參數(shù)名稱,建議給個有意義的名字。
注意:到這里整個web_reg_save_param函數(shù)還沒完成。

2. 找出web_reg_save_param中要用到的邊界
web_reg_save_param函數(shù)主要是透過動態(tài)數(shù)據(jù)的前面和后面的固定字符串,來辨識要擷取的動態(tài)數(shù)據(jù)的,所以我們還需要找出動態(tài)數(shù)據(jù)的邊界字符串。
找出左邊界字符串
再回到Execution Log中,選取動態(tài)數(shù)據(jù)前的字符串并且復(fù)制它。
這時會有個問題,到底要選取多少字符串才足以唯一識別要找的動態(tài)數(shù)據(jù)呢?建議是越多越好,但是盡量不要包含到特殊字符。
在這邊我們選取「input type=hidden name=userSession value=」字符串。選好之后,還要再確認(rèn)一次這段字符串真的是可以唯一識別的,所以我們在Execution Log中透過Ctrl+F的搜尋,找找看這段字符串是否可以找到要找的動態(tài)數(shù)據(jù)。假如找不到,web_reg_save_param函數(shù)還有個ORD參數(shù)可以使用,ORD參數(shù)可以設(shè)定出現(xiàn)在第幾次的字符串才是要找的字符串。
將這個邊界字符串加到未完成的web_reg_save_param函數(shù)中:
web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”,
找出右邊界字符串
接下來要找出動態(tài)數(shù)據(jù)的右邊界字符串,這個字符串就比較好找了,從動態(tài)數(shù)據(jù)的最后一個字符開始,通常就是我們要找的右邊界字符串了。
以這個例子來看,就是「>」,所以再把右邊界字符串加入,web_reg_save_param函數(shù)中,這時web_reg_save_param函數(shù)已經(jīng)快完成了。最后再加上「LAST);」就完成整個web_reg_save_param函數(shù)了。
web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”, “RB=>”, LAST);

將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),以參數(shù)取代
當(dāng)使用web_reg_save_param建立參數(shù)后,接下來就是用“UserSession”參數(shù)去取代腳本中寫死的(hard-coded)資料。
范例:

“Name=userSession”, “Value=75893.0884568651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,
換成
“Name=userSession”, “Value={UserSession}”, ENDITEM,

到這里您已經(jīng)完成了一個關(guān)聯(lián)了,接下來就是執(zhí)行腳本,是否能成功運行,假如還是有問題,就要檢查看看是否還需要再做另一個關(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做比較詳細的說明。
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意味著其真正作用的時機是在下一個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ù)。
所以要記住一點,要使用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。以下將詳細說明每個屬性值的意義:
? Notfound:指定當(dāng)找不到要找的動態(tài)數(shù)據(jù)時該怎么處置。
o Notfound=error:當(dāng)找不到動態(tài)數(shù)據(jù)時,發(fā)出一個錯誤訊息。假如沒設(shè)定此屬性,此為LoadRunner的默認(rèn)值。
o 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:可能的值有二種:
o HTML_TO_URL: 將HTML-encoded數(shù)據(jù)轉(zhuǎn)成URL-encoded數(shù)據(jù)格式
o 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)的可能原因如下:
o 腳本是由VuGen 6.02或更早的版本所錄制的
o 匯入的Action不會包含快照(snapshot)的檔案
o 腳本是儲存在只讀的目錄下,早成VuGen無法儲存執(zhí)行時擷取的快照(snapshot)
o 某些步驟并不會產(chǎn)生快照(snapshot),如瀏覽某個資源
o 快照(snapshot)功能被取消
【Tools】>【General options】>【Correlation】tab >【Save correlation information during replay】
? 開啟WinDiff時出現(xiàn)「File no longer available」的錯誤訊息
WinDiff這個工具有些限制,無法開啟包含空格符的目錄或是腳本,所以建議命名時不要使用空格符,并且盡可能將名稱取短一點。
? 錄制時突然跳出【Correlation warning】對話窗口
當(dāng)你有勾選自動關(guān)聯(lián)的【Issue a popup message and let me decide online】選項,當(dāng)VuGen發(fā)現(xiàn)有可能要做關(guān)聯(lián)的數(shù)據(jù)時,就會跳出【Correlation warning】的窗口,詢問你要做關(guān)聯(lián)(Correlation in scrīpt)還是要忽略(Ignore)。
另外你也可以勾選【Perform correlation in scrīpt】,讓VuGen自動作關(guān)聯(lián),不會再跳出詢問窗口。
或是勾選【Disable correlation engine】,關(guān)閉自動關(guān)聯(lián)的功能。

? 如何手動啟動「Scan action for correlation」的功能
要手動啟動「Scan action for correlation」的功能,請先執(zhí)行腳本一次后,點選【Vuser】>【Scan Action for Correlation】。

? 執(zhí)行完腳本后并未出現(xiàn)【Scan Action for Correlation】窗口
要啟用【Scan Action for Correlation】功能,請點選【Tools】>【General options】>【Correlation】tab,勾選【Show Scan for correlation popup after replay of Vuser】選項。


關(guān)聯(lián)函數(shù)一個有用的選項


在LR中,關(guān)聯(lián)函數(shù)web_reg_save_param的NotFound參數(shù)有兩個選項,含義分別如下:

ERROR:當(dāng)關(guān)聯(lián)函數(shù)未能找到匹配值時,LR將拋出一個Error信息;
EMPTY:當(dāng)關(guān)聯(lián)函數(shù)未能找到匹配值時,LR將空值賦給該關(guān)聯(lián)的參數(shù)值。

默認(rèn)情況下,該值為Error,在大多數(shù)情況下,這是可以滿足要求的。然而在某些時候,我們可能需要利用關(guān)聯(lián)值做一些條件判斷,例如設(shè)定當(dāng)關(guān)聯(lián)到的值為空時,讓腳本做一些特殊處理,此時如果使用默認(rèn)的選項就不合適了,因為當(dāng)LR識別到該關(guān)聯(lián)值為空時,將拋出一個錯誤信息,提示未找到關(guān)聯(lián)記錄。怎么辦呢?此時就可以使用NotFound的另外一個選項,即將NotFound參數(shù)值設(shè)為Empty,

例:

web_reg_save_param("customer","LB=name=\"classiAssetsSelected\" value=\"","RB=\"","NotFound=EMPTY",LAST);

令LR將空值賦給customer參數(shù),然后在后面的腳本中結(jié)合判斷條件語句,如:

if(strcmp("", lr_eval_string("{customer}")) !=0),就可以讓腳本根據(jù)判斷條件做相應(yīng)的控制。

轉(zhuǎn)載于:https://www.cnblogs.com/shinta/archive/2009/07/31/1535857.html

總結(jié)

以上是生活随笔為你收集整理的[转]详细介绍如何做关联的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。