談談LoadRunner中的關聯

來源:互聯網
上載者:User
談談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/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.