日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LoadRunner 如何设置关联

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LoadRunner 如何设置关联 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于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”,當回放玩腳本后,會彈出Scanactionfor 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 : 返回信息的查找范圍。可以是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);
  第六步:驗證關聯的正確性
  回放腳本,驗證關聯的正確性。
  OK!!!
  大功告成

轉載于:https://www.cnblogs.com/Darrenblog/p/7081136.html

總結

以上是生活随笔為你收集整理的LoadRunner 如何设置关联的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。