• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于Loadrunner關聯

    發布: 2009-11-13 09:54 | 作者: webmaster | 來源: 本站原創 | 查看: 894次 | 進入軟件測試論壇討論

    領測軟件測試網

    關于Loadrunner關聯     軟件測試

     

    一、什么時候需要關聯

    1.關聯的含義

            關聯(correlation):在腳本回放過程中,客戶端發出請求,通過關聯函數所定義的左右邊界值(也就是關聯規則),在服務器所響應的內容中查找,得到相應的值,已變量的形式替換錄制時的靜態值,從而向服務器發出正確的請求,這種動態獲得服務器響應內容的方法被稱作關聯。

            其實關聯也屬于一同特殊的參數化,只是與一般的參數化有些不同

            一般的參數化的參數來源于一個文件、一個定義的table、通過sql寫的一個結果集等,但關聯所獲得的參數是服務器響應請求所返回的一個符合條件的、動態的值

            2.什么時候需要做關聯

            要想弄清這個問題,我們首先要知道客戶端與服務器端的請求與響應的過程

            過程說明:

            客戶端發出獲得登錄頁面的請求

            服務器端得到該請求后,返回登錄頁面,同時動態生成一個Session Id

            當用戶輸入用戶名密碼,請求登錄時,該Session Id同時被發送到服務器端

            如果該Session Id在當前會話中有效,那么返回登錄成功的頁面,如果不正確則登錄失敗

            在第一次錄制過程中loadrunner把這個值記錄了下來,寫到了腳本中,但再次回放時,客戶端發出同樣的請求,而服務器端再一次動態的生成了Session Id,此時客戶端發出的請求就是錯誤的,為了獲得這個動態的Session Id我們這里用到了關聯。

            所以我們得出結論:

            當客戶端的某個請求是隨著服務器端的相應而動態變化的時候,我們就需要用到關聯

            當然我們在錄制腳本時應該對測試的項目進行適當的了解,知道哪些請求需要用到服務器響應的動態值,如果我們不明確那些值需要做關聯的話,我們也可以將腳本錄制兩遍,通過對比腳本的方法來查找需要關聯的部分,但并不是說兩次錄制的所有不同點都需要關聯,這個要具體情況具體分析

     

    二、自動關聯 loadrunner參數化

    自動關聯包含兩種機制:

            一種是loadrunner通過對比錄制和回放時服務器響應的不同,而提示用戶是否進行關聯,用戶可自己創建關聯規則,這個功能可以方便的使我們獲得需要關聯的部分,但同時也存在一定的問題,如:自動關聯所檢測到的關聯點不一定真的需要進行關聯,這要我們更具實際情況進行判斷;有些需要關聯的動態數據自動關聯無法找到,這是就需要做手動關聯

            另一種是loadrunner自帶的自動關聯規則,在錄制腳本時,會根據這些規則自動創建關聯

            自動關聯的步驟如下:

            1.開啟自動關聯選項

            剛才提到的兩種關聯機制,如果用戶想使用loadrunner自帶的關聯規則創建關聯,那么需要在【Recording Options】>【Internet Protocol】>【Correlation】中啟用關聯規則,選中“Enable correlation during recording”,當錄制這些應用系統的腳本時,VuGen會在腳本中自動建立關聯。也可以在【Recording Options】>【Internet Protocol】>【Correlation】中添加關聯規則,達到自動關聯的目的。

            如果需要在回放腳本時,loadrunner自動檢測需要關聯的部分,那么需要在【Tools】>【general options】>【Correlation】中選中“save correlation information during replay”和“show scan for correlations popup after replay of vuser”,當回放玩腳本后,會彈出Scan action for correlation窗口,進行關聯點的搜索

            2.錄制腳本

            錄制腳本的過程在這里就不多說了

            3.回放腳本

            如果錄制的腳本存在需要做關聯的部分,那么在回放腳本時會出現錯誤

            4.系統自動彈出檢測關聯對話框,或手動啟動關聯檢測對話框

            如果選擇了【Tools】>【general options】>【Correlation】中的“save correlation information during replay”和“show scan for correlations popup after replay of vuser”,那么在回放腳本后會自動彈出“Scan action for correlation”窗口,點擊“yes”進行自動查找

            如果沒有選擇上述設置,那么也可以按CTRL+F8啟動關聯自動搜索

            5.查看系統檢測出的關聯點進行關聯設置

            如果在錄制和回放中存在差異,loadrunner會在“Correlation Results”中列出需要做關聯的內容,用鼠標點擊一條需要做關聯的內容,點擊“Create Rule”,系統會顯示獲得當前數據的規則,點擊“yes”,完成規則的創建,同時查看腳本中增加了一個web_reg_save_param函數

            也可以點擊【Correlate】按鈕創建關聯,一筆一筆做,或是按下【Correlate All】讓VuGen一次就對所有的數據建立關聯。

            注意:由于Correlation Studio會找出所有有變動的數據,但是并不是所有的數據都需要做關聯,所以不建議您直接用【Correlate All】。

            6.回放腳本檢查關聯的正確性

            創建好關聯后,回放腳本檢查關聯的正確性

     

    三、手動關聯

     手動關聯的過程大致如下:

      第一步:錄制測試腳本,錄制二遍

      第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進行關聯

      第三步:確定插入關聯的位置

      第四步:在VIEW TREE中使用web_reg_save_param函數手動建立關聯

      第五步:將腳本中有用到關聯的數據,用參數代替

      第六步:驗證關聯的正確性

      下面詳細介紹:

      第一步:錄制測試腳本,錄制二遍

      這一步就不用多說了,相同的操作,錄制兩份,分別保存

      第二步:使用WinDiff工具協助找出需要關聯的數據

      1. 在第二份腳本中,點選VuGen的【Tools】>【Compare with Vuser…】,并選擇第一份腳本。

      2. 接著WinDiff會開啟,同時顯示二份腳本,并顯示有差異的地方。WinDiff會以一整行黃色標示有差異的腳本,并且以紅色的字體顯示真正差異的文字。(假如沒看到紅色字體,請點選【Options】>【View】>【Show Inline Differences】)。

      查看二份腳本中差異的部份,每一個差異都可能是需要做關聯的地方。

      注意:lr_thik_time部分的差異可以忽略

      找到不同的部分后,復制,然后打開Recording Log或是Generation Log,按Ctrl+F,在查找窗口中粘貼差異部分的內容,點擊查找找到后,查看該部分的信息,確認是客戶端的請求信息還是服務器回應的信息

      如果出現在$$$$$$ Request Header For Transaction With Id 3 Ended $$$$$$這個部分,那證明是客戶端發出的請求,這里是不需要做關聯的

      一般做的關聯都是出現在****** Response Header For Transaction With Id 7 ******和****** Response Body For Transaction With Id 7 ******中的部分。

      在找到這個信息后,需要記錄如下信息:

      a、記錄這個不同數據之前的內容和之后的內容

    b、記錄這個不同數據出現的位置,是Header還是Body

    第三步:確認插入關聯的位置

      我們在日志中找到了兩次腳本的不同點的位置,根據這個位置,我們再確定是在哪個請求之后產生的,也就是說要定位發生不同點的response是由哪個request產生的,找到了這個請求的函數位置,我們就知道要往哪里做關聯了。

      一般情況下關聯函數寫到發出請求的函數之前就可以了。

      第四步:插入關聯函數

      在插入關聯函數前,我們先介紹關聯函數web_reg_save_param

      一個web_reg_save_param函數的例子:

    web_reg_save_param ("sessionid",

      "LB=Session_id:",

      "RB=;",

      "Search=Body",

      LAST);

      在這里我們只介紹幾個常用參數的含義

      語法:int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

      參數說明:

      ParamName: 存放得到的動態內容的參數名稱

      list of Attributes: 其它屬性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。屬性值不分大小寫

      LB( Left Boundary ) : 返回信息的左邊界字串。該屬性必須有,并且區分大小寫。

      RB( Right Boundary ): 返回信息的右邊界字串。該屬性必須有,并且區分大小寫。

      Search : 返回信息的查找范圍?梢允荋eaders,Body,Noresource,All(缺省)。該屬性質可有可無。

      那么如何插入該關聯函數呢?

      1.將vugun切換到 view tree 模式下

      2.在左邊的列表中,找到在上一步發出請求的函數,點擊“右鍵”

      選擇“insert before”

      3.在彈出的“add step”對話框的“find function”中輸入“web_reg_save_param”,點擊“ok”

      在“parameter name”中輸入,關聯函數的名稱,這里最好有含義,“sessionid”

      在“left boundary”中輸入,剛才記錄下的不同點字符串的左面的幾個字符,定義左邊界,Session_id:

      在“right boundary”中輸入,剛才記錄下的不同點字符串的右面的幾個字符,定義右邊界,;

      在“search in ”中,選擇“body”

      點擊“ok”

      4.回到腳本編輯模式下,查看該函數插入是否正確

      在發出請求的函數前應該看到:

    web_reg_save_param ("sessionid",

      "LB=Session_id:",

      "RB=;",

      "Search=Body",

      LAST);

      第五步:將腳本中有用到關聯的數據,用參數代替

      如發出請求的參數如下,那么將原來服務器返回的動態值使用{ sessionid } 來替換:

    web_submit_form("login.php_2",

      "Snapshot=t2.inf",

      ITEMDATA,

      "Name=login", "Value=wangjin", ENDITEM,

      "Name=password", "Value=wangjin", ENDITEM,

      "Name=Session_id","Value={ sessionid } ", ENDITEM,

      "Name=Submit", "Value=Login", ENDITEM,

      EXTRARES,

      "URL=/media/images/border_bg_l.gif", ENDITEM,

      "URL=/media/images/header_bg.gif", ENDITEM,

      "URL=/media/images/th.gif", ENDITEM,

      LAST);

      第六步:驗證關聯的正確性

      回放腳本,驗證關聯的正確性。

      OK。!

      大功告成。

     

     

     

     

     

     

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: loadrunner LoadRunner Loadrunner loadRunner


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>