談談LoadRunner中的關聯
發布: 2007-7-10 21:39 | 作者: 網路轉載 | 來源: 網路轉載 | 查看: 1368次 | 進入軟體測試論壇討論
軟體測試時代 當錄製指令碼時,VuGen會攔截client端(瀏覽器)與server端(網站
伺服器)之間的對話,並且記錄下來,產生指令碼
當執行指令碼時,VuGen偽裝成瀏覽器,然後根據指令碼,把當初瀏覽器所做過的,再對網站伺服器運行一遍。
所以記錄在指令碼中要跟伺服器所說的話,完全與當初錄製時所說的一樣,是寫死的。這樣的作法在遇到有些比較聰明的伺服器時,還是會失效。這時就需要透過「關聯(correlation)」的做法來讓VuGen可以再次成功地騙過伺服器。
何謂關聯(correlation)?
所謂的關聯(correlation)就是把指令碼中某些寫死的(hard-coded)資料,轉變成是取自伺服器所送的、動態、每次都不一樣的資料
下面舉一個執行個體來說明:
當錄製指令碼時,瀏覽器送出網頁A的請求,伺服器將網頁A的內容傳送給瀏覽器,並且夾帶了一個ID=123的資料,當瀏覽器再送出網頁B的情求時,這時就要用到ID=123的資料,伺服器才會認為這是合法的請求,並且把網頁B的內容送回給瀏覽器。
在執行指令碼時會發生什麼狀況?瀏覽器再送出網頁B的請求時,用的還是當初錄製的ID=123的資料,而不是用伺服器新給的ID=456,整個指令碼的執行就會失敗。
用以下進行圖示:
具體錯誤的資訊會出現一些什麼內容呢?
錯誤訊息有可能會提醒您要重新登入,但是也有可能直接就顯示HTTP 404的錯誤訊息。
VuGen提供二種方式協助您找出需要做關聯(correlation)的值:
1. 自動關聯
2. 手動關聯
自動關聯
VuGen內建自動關聯引擎(auto-correlation engine),可以自動找出需要關聯的值,並且自動使用關聯函數建立關聯。
自動關聯提供下列二種機制:
? Rules Correlation:在錄製過程中VuGen會根據訂定的規則,即時自動找出要關聯的值。規則來源有兩種:
o 內建(Built-in Correlation):
VuGen已經針對常用的一些應用系統,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,內建關聯規則,這些應用系統可能會有一種以上的關聯規則。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中啟用關聯規則,則當錄製這些應用系統的指令碼時,VuGen會在指令碼中自動建立關聯。
您也可以在【Recording Options】>【Internet Protocol】>【Correlation】檢視每個關聯規則的定義。
請依照以下步驟使用Rule Correlation:
1. 啟用auto-correlation
1. 點選VuGen的【Tools】>【Recording Options】,開啟【Recording Options】交談視窗,選取【Internet Protocol】>【Correlation】,勾選【Enable correlation during recording】,以啟用自動關聯。
2. 假如錄製的應用系統屬於內建關聯規則的系統,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,請勾選相對應的應用系統。
3. 或者也可以針對錄製的應用系統加入新的關聯規則,此即為使用者自訂的關聯規則。
4. 設定當VuGen偵測到符合關聯規則的資料時,要如何處理:
【Issue a pop-up message and let me decide online】:跳出一個訊息交談視窗,詢問您是否要建立關聯。§
【Perform correlation in sceipt】:直接自動建立關聯
手動關聯
手動關聯的執行過程大致如下:
1. 使用相同的商務程序與資料,錄製二份指令碼
2. 使用WinDiff工具協助找出需要關聯的資料
3. 使用web_reg_save_param函數手動建立關聯
4. 將指令碼中有用到關聯的資料,以參數取代
接下來將詳細的說明如何執行每個步驟
使用相同的商務程序與資料,錄製二份指令碼
1. 先錄製一份指令碼並存檔。
2. 依照相同的操作步驟與資料錄製第二份指令碼並存檔。注意,所有的步驟和輸入的資料一定都要一樣,這樣才能找出由伺服器端產生的動態資料。
有時候會遇到真的無法使用相同的輸入資料,那您也要記住您使用的輸入資料,到時才能判斷是您輸入的資料,還是變動的資料。
使用WinDiff工具協助找出需要關聯的資料
1. 在第二份指令碼中,點選VuGen的【Tools】>【Compare with Vuser…】,並選擇第一份指令碼。
2. 接著WinDiff會開啟,同時顯示二份指令碼,並顯示有差異的地方。WinDiff會以一整行黃色標示有差異的指令碼,並且以紅色的字型顯示真正差異的文字。(假如沒看到紅色字型,請點選【Options】>【View】>【Show Inline Differences】)。
3. 逐一檢視二份指令碼中差異的部份,每一個差異都可能是需要做關聯的地方。選取差異的指令碼,然後複製。
4.然後利用一些函數實現關聯
以上僅僅談了一下LR指令碼為什麼要關聯,關聯包括手工關聯和自動關聯,更為詳細的內容可以參照LR的使用說明書
文章來源於軟體測試時代 http://www.ltesting.net/