當執行腳本時(shí),VuGen偽裝成瀏覽器,然后根據腳本,把當初瀏覽器所做過(guò)的,再對網(wǎng)站服務(wù)器運行一遍。
所以記錄在腳本中要跟服務(wù)器所說(shuō)的話(huà),完全與當初錄制時(shí)所說(shuō)的一樣,是寫(xiě)死的。這樣的作法在遇到有些比較聰明的服務(wù)器時(shí),還是會(huì )失效。這時(shí)就需要透過(guò)「關(guān)聯(lián)(correlation)」的做法來(lái)讓VuGen可以再次成功地騙過(guò)服務(wù)器。
何謂關(guān)聯(lián)(correlation)?
所謂的關(guān)聯(lián)(correlation)就是把腳本中某些寫(xiě)死的(hard-coded)數據,轉變成是取自服務(wù)器所送的、動(dòng)態(tài)的、每次都不一樣的數據
下面舉一個(gè)實(shí)例來(lái)說(shuō)明:
當錄制腳本時(shí),瀏覽器送出網(wǎng)頁(yè)A的請求,服務(wù)器將網(wǎng)頁(yè)A的內容傳送給瀏覽器,并且?jiàn)A帶了一個(gè)ID=123的數據,當瀏覽器再送出網(wǎng)頁(yè)B的情求時(shí),這時(shí)就要用到ID=123的數據,服務(wù)器才會(huì )認為這是合法的請求,并且把網(wǎng)頁(yè)B的內容送回給瀏覽器。
在執行腳本時(shí)會(huì )發(fā)生什么狀況?瀏覽器再送出網(wǎng)頁(yè)B的請求時(shí),用的還是當初錄制的ID=123的數據,而不是用服務(wù)器新給的ID=456,整個(gè)腳本的執行就會(huì )失敗。
用以下進(jìn)行圖示:
具體錯誤的信息會(huì )出現一些什么內容呢?
錯誤訊息有可能會(huì )提醒您要重新登入,但是也有可能直接就顯示HTTP 404的錯誤訊息。
VuGen提供二種方式幫助您找出需要做關(guān)聯(lián)(correlation)的值:
1. 自動(dòng)關(guān)聯(lián)
2. 手動(dòng)關(guān)聯(lián)
自動(dòng)關(guān)聯(lián)
VuGen內建自動(dòng)關(guān)聯(lián)引擎(auto-correlation engine),可以自動(dòng)找出需要關(guān)聯(lián)的值,并且自動(dòng)使用關(guān)聯(lián)函數建立關(guān)聯(lián)。
自動(dòng)關(guān)聯(lián)提供下列二種機制:
? Rules Correlation:在錄制過(guò)程中VuGen會(huì )根據訂定的規則,實(shí)時(shí)自動(dòng)找出要關(guān)聯(lián)的值。規則來(lái)源有兩種:
o 內建(Built-in Correlation):
VuGen已經(jīng)針對常用的一些應用系統,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,內建關(guān)聯(lián)規則,這些應用系統可能會(huì )有一種以上的關(guān)聯(lián)規則。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中啟用關(guān)聯(lián)規則,則當錄制這些應用系統的腳本時(shí),VuGen會(huì )在腳本中自動(dòng)建立關(guān)聯(lián)。
您也可以在【Recording Options】>【Internet Protocol】>【Correlation】檢視每個(gè)關(guān)聯(lián)規則的定義。
請依照以下步驟使用Rule Correlation:
1. 啟用auto-correlation
1. 點(diǎn)選VuGen的【Tools】>【Recording Options】,開(kāi)啟【Recording Options】對話(huà)窗口,選取【Internet Protocol】>【Correlation】,勾選【Enable correlation during recording】,以啟用自動(dòng)關(guān)聯(lián)。
2. 假如錄制的應用系統屬于內建關(guān)聯(lián)規則的系統,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,請勾選相對應的應用系統。
3. 或者也可以針對錄制的應用系統加入新的關(guān)聯(lián)規則,此即為使用者自訂的關(guān)聯(lián)規則。
4. 設定當VuGen偵測到符合關(guān)聯(lián)規則的數據時(shí),要如何處理:
【Issue a pop-up message and let me decide online】:跳出一個(gè)訊息對話(huà)窗口,詢(xún)問(wèn)您是否要建立關(guān)聯(lián)!
【Perform correlation in sceipt】:直接自動(dòng)建立關(guān)聯(lián)
手動(dòng)關(guān)聯(lián)
手動(dòng)關(guān)聯(lián)的執行過(guò)程大致如下:
1. 使用相同的業(yè)務(wù)流程與數據,錄制二份腳本
2. 使用WinDiff工具協(xié)助找出需要關(guān)聯(lián)的數據
3. 使用web_reg_save_param函數手動(dòng)建立關(guān)聯(lián)
4. 將腳本中有用到關(guān)聯(lián)的數據,以參數取代
接下來(lái)將詳細的說(shuō)明如何執行每個(gè)步驟
使用相同的業(yè)務(wù)流程與數據,錄制二份腳本
1. 先錄制一份腳本并存檔。
2. 依照相同的操作步驟與數據錄制第二份腳本并存盤(pán)。注意,所有的步驟和輸入的數據一定都要一樣,這樣才能找出由服務(wù)器端產(chǎn)生的動(dòng)態(tài)數據。
有時(shí)候會(huì )遇到真的無(wú)法使用相同的輸入數據,那您也要記住您使用的輸入數據,到時(shí)才能判斷是您輸入的數據,還是變動(dòng)的數據。
使用WinDiff工具協(xié)助找出需要關(guān)聯(lián)的數據
1. 在第二份腳本中,點(diǎn)選VuGen的【Tools】>【Compare with Vuser…】,并選擇第一份腳本。
2. 接著(zhù)WinDiff會(huì )開(kāi)啟,同時(shí)顯示二份腳本,并顯示有差異的地方。WinDiff會(huì )以一整行黃色標示有差異的腳本,并且以紅色的字體顯示真正差異的文字。(假如沒(méi)看到紅色字體,請點(diǎn)選【Options】>【View】>【Show Inline Differences】)。
3. 逐一檢視二份腳本中差異的部份,每一個(gè)差異都可能是需要做關(guān)聯(lián)的地方。選取差異的腳本,然后復制。
4.然后利用一些函數實(shí)現關(guān)聯(lián)
以上僅僅談了一下LR腳本為什么要關(guān)聯(lián),關(guān)聯(lián)包括手工關(guān)聯(lián)和自動(dòng)關(guān)聯(lián),更為詳細的內容可以參照LR的使用說(shuō)明書(shū)
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/