loadrunner怎樣進行手動關聯


轉自:http://novasblog.blog.163.com/blog/static/43713514200901341934981/

手動關聯的主要步驟為:
        第一步:錄制測試腳本,錄制二遍

        第二步:使用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,(一般情況錄制腳本時選擇Single Protocol單協議在Recording Log里找,錄制腳本時選擇Multiple Protocol協議,在Generation Log里找)按Ctrl+F,在查找窗口中粘貼差異部分的內容,點擊查找找到后,查看該部分的信息,確認是客戶端的請求信息還是服務器回應的信息。也可以將腳本的視圖方式換到樹形方式,如下圖,在Server Response里找。

手動關聯如何操作 - novasblog - Novas Blog

       

        如果出現在$$$$$$ 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 Header For Transaction With Id 7 ******”這們的日志部分,則是“Search ”參數的范圍可設置為“Headers”,如果出現在如“****** Response Body For Transaction With Id 7 ******”這們的日志部分,則是“Search ”參數的范圍可設置為“Body”)

        第三步:

        確認插入關聯的位置

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

        一般情況下關聯函數寫到發出請求的函數之前,服務器已經回應的要進行關聯的數據腳本之后,在發出請求之前進行關聯操作(調用web_reg_save_param函數中存放得到的動態內容的參數名稱)(在發出請求之前就要將有變化的地方進行參數化,所以要放在發出請求之前,)

        第四步:

        插入關聯函數

        在插入關聯函數前,我們先介紹關聯函數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 : 返回信息的查找范圍。可以是Headers,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);
 
        第六步:
        驗證關聯的正確性
        回放腳本,驗證關聯的正確性

ps:loadrunner自帶訂票系統自動關聯掃描沒結果,可以用另一種方式來關聯

找到session右鍵鼠標create correlation,在回到腳本視圖,代碼就自動加好了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM