LoadRunner壓力測試實際運用的使用方法


LoadRunner 是一種預測系統行為和性能的工業標准級負載測試工具。通過以模擬上

千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner 能夠對整個

企業架構進行測試。

 

方法/步驟

  1. 1

    使用LoadRunner 完成測試一般分為四個步驟:

  2. 2

    Vvitrual User Generator 創建腳本

     創建腳本,選擇協議

     錄制腳本

     編輯腳本

    檢查修改腳本是否有誤

     

  3. 3

    中央控制器(Controller)來調度虛擬用戶

     創建Scenario,選擇腳本

     設置機器虛擬用戶數

    設置Schedule

    如果模擬多機測試,設置Ip Spoofer

     

     

    LoadRunner壓力測試實際運用的使用方法
  4. 4

    運行腳本

    分析scenario

    分析測試結果

     

  5. 5

    安裝LoadRunner 中文版

    LoadRunner 分為Windows 版本和Unix 版本。如果我們的所有測試環境基於Windows 

    平台, 那么我們只要安裝Windows 版本即可。本章講解的安裝過程就是LoadRunner7.8中文的Windows 版本的安裝。

     

  6. 6

    使用LoadRunner進行負載/壓力測試

     

  7. 7

    錄制基本的用戶腳本

    創建用戶腳本需要用到VuGen。提示: 運行VuGen 最好在1024*768 的分辨率下, 否則有些工具欄會看不到。

    啟動Visual User Generator 后, 通過菜單新建一個用戶腳本, 選擇系統通訊的協議。

    這里我們需要測試的是Web 應用,同時考慮到后台SQL數據庫所以我們需要選擇Web(HTTP/HTML)協議+SQL SERVER協議,確定后, 進入主窗體。通過菜單來啟動錄制腳本的命令。

     

  8. 8

    在URL 中添入要測試的Web 站點地址..。

    ●測試http://lms.ah.sp.com.cn/lms-lmm/loginForm.do選擇要把錄制的腳本放到哪一個部分, 默認情況下是“Action”。

    這里簡單說明一下:VuGen 中的腳本分為三部分:vuser_init、vuser_end 和Action。其

    中vuser_init 和vuser_end 都只能存在一個, 不能再分割, 而Action 還可以分成無數多個部分( 通過點擊New 按鈕, 新建ActionXXX)。在錄制需要登陸的系統時, 我們把登陸部分放到vuser_init 中, 把登陸后的操作部分放到Action 中, 把注銷關閉登陸部分放到vuser_end 中。( 如果需要在登陸操作設集合點, 那么登陸操作也要放到Action 中, 因為vuser_init 中不能添加集合點) 在其他情況下, 我們只要把操作部分放到Action 中即可。注意: 在重復執行測試腳本時,vuser_init 和vuser_end 中的內容只會執行一次, 重復執行的只是Action 中的部分。

     

    LoadRunner壓力測試實際運用的使用方法
  9.  

    點“ 選項 ”按鈕, 進入錄制的設置窗體, 這里一般情況下不需要改動。

    ●然后點“OK” 后,VuGen 開始錄制腳本。在錄制過程中, 不要使用瀏覽器的“ 后退” 功能,LoadRunner 支持不太好! 錄制過程中, 在屏幕上會有一個工具條出現。錄制的過程和WinRunner 有些類似, 不再多介紹。錄制完成后, 按下“ 結束錄制” 按鈕,VuGen 自動生成用戶腳本, 退出錄制過程。

     

    LoadRunner壓力測試實際運用的使用方法
  10.  

    完善測試腳本

    當錄制完一個基本的用戶腳本后, 在正式使用前我們還需要完善測試腳本, 增強腳本的

    靈活性。一般情況下, 我們通過以下幾種方法來完善測試腳本。插入事務、插入結合點、插入注解、參數化輸入。這里只舉例介紹參數化如何設置,其它只作簡單介紹。

     

    LoadRunner壓力測試實際運用的使用方法
  11.  

    插入事務

    事務(Transaction): 為了衡量服務器的性能, 我們需要定義事務。比如: 我們在腳本

    中有一個數據查詢操作, 為了衡量服務器執行查詢操作的性能, 我們把這個操作定義為一個事務, 這樣在運行測試腳本時,LoadRunner 運行到該事務的開始點時,LoadRunner 就會開始計時, 直到運行到該事務的結束點, 計時結束。這個事務的運行時間在結果中會有反映。

    插入事務操作可以在錄制過程中進行, 也可以在錄制結束后進行。LoadRunner 運行在

    腳本中插入不限數量的事務。

    具體的操作方法如下: 在需要定義事務的操作前面, 通過菜單或者工具欄插入。輸入該事務的名稱。注意: 事務的名稱最好要有意義, 能夠清楚的說明該事務完成的動作。插入事務的開始點后, 下面需要在需要定義事務的操作后面插入事務的“ 結束點”。同樣可以通過菜單或者工具欄插入。默認情況下, 事務的名稱列出最近的一個事務名稱。一般情況下, 事務名稱不用修改。事務的狀態默認情況下是LR_AUTO。一般情況下, 我們也不需要修改, 除非在手工編寫代碼時, 有可能需要手動設置事務的狀態。

     

    LoadRunner壓力測試實際運用的使用方法
  12.  

    插入集合點

    插入集合點是為了衡量在加重負載的情況下服務器的性能情況。在測試計划中, 可能會

    要求系統能夠承受1000 人同時提交數據,在LoadRunner 中可以通過在提交數據操作前面加入集合點, 這樣當虛擬用戶運行到提交數據的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點,如果不到1000 人,LoadRunner 就會命令已經到集合點的用戶在此等待, 當在集合點等待的用戶達到1000 人時,LoadRunner 命令1000 人同時去提交數據, 從而達到測試計划中的需求。

    注意: 集合點經常和事務結合起來使用。集合點只能插入到Action 部分,vuser_init 和vuser_end 中不能插入集合點。具體的操作方法如下: 在需要插入集合點的前面, 通過菜單或者工具欄操作輸入該集合點的名稱。注意: 集合點的名稱最好要有意義, 能夠清楚的說明該集合點完

    成的動作。

     

    LoadRunner壓力測試實際運用的使用方法
  13.  

    插入注釋

    注釋的作用就不多說了, 不過插入注釋最好是在錄制過程中。具體的操作方法如下: 在需要插入注釋的前面, 通過菜單或者工具欄操作

     

    LoadRunner壓力測試實際運用的使用方法
  14.  

    參數化輸入

    如果用戶在錄制腳本過程中, 填寫提交了一些數據, 比如要增加數據庫記錄。這些操作

    都被記錄到了腳本中。當多個虛擬用戶運行腳本時, 都會提交相同的記錄, 這樣不符合實際的運行情況, 而且有可能引起沖突。為了更加真實的模擬實際環境, 需要各種各樣的輸入。參數化輸入是一種不錯的方法。

    用參數表示用戶的腳本有兩個優點: 

    ① 可以使腳本的長度變短。

    ② 可以使用不同的數值來測試你的腳本。例如, 如果你企圖搜索不同名稱的圖書, 你

    僅僅需要寫提交函數一次。在回放的過程中, 你可以使用不同的參數值, 而不只搜索一

    個特定名稱的值。

    參數化包含以下兩項任務: 

    ① 在腳本中用參數取代常量值。

    ② 設置參數的屬性以及數據源。

    參數化僅可以用於一個函數中的參量。你不能用參數表示非函數參數的字符串。

    另外, 不是所有的函數都可以參數化的。

    參數化輸入的講解, 我們采用一個例子的方式來進行。

    在本例中我們參數化用戶的登陸名:

    先看如下腳本,通過腳本錄制找到用戶登陸部分,如圖

     

    LoadRunner壓力測試實際運用的使用方法
  15.  

    參數名隨意取,建議取通俗易懂的名字,下面我們重點介紹一下參數的類型。

    ●DateTime: 很簡單, 在需要輸入日期/時間的地方, 可以用DateTime 類型來替代。

    其屬性設置也很簡單, 選擇一種格式即可。當然也可以定制格式。

    .●Group Name:暫時不知道何處能用到,但設置比較簡單。在實際運行中,LoadRunner 

    使用該虛擬用戶所在的Vuser Group 來代替。但是在VuGen 中運行時,Group Name 

    將會是None 

    .●Load Generator Name: 在實際運行中,LoadRunner 使用該虛擬用戶所在Load Generator 的機器名來代替。

    .●Iteration Number: 在實際運行中,LoadRunner 使用該測試腳本當前循環的次數來

    代替。

    .●Random Number: 隨機數。很簡單。在屬性設置中可以設置產生隨機數的范圍

    .●Unique Number:唯一的數。在屬性設置中可以設置第一個數以及遞增的數的大小。

    注意: 使用該參數類型必須注意可以接受的最大數。例如: 某個文本框能接受的

    最大數為99。當使用該參數類型時, 設置第一個數為1, 遞增的數為1, 但100 個

    虛擬用戶同時運行時,第100 個虛擬用戶輸入的將是100,這樣腳本運行將會出錯。

    注意: 這里說的遞增意思是各個用戶取第一個值的遞增數, 每個用戶相鄰的兩次循

    環之間的差值為1。舉例說明: 假如起始數為1, 遞增為5, 那么第一個用戶第一

    次循環取值1, 第二次循環取值2; 第二個用戶第一次循環取值為6, 第二次為7; 

    依次類推。

    ●Vuser ID: 設置比較簡單。在實際運行中,LoadRunner 使用該虛擬用戶的ID 來代

    替,該ID 是由Controller 來控制的。但是在VuGen 中運行時,Vuser ID 將會是–1。

    File: 需要在屬性設置中編輯文件,添加內容,也可以從現成的數據庫中取數據( 下

    面我們將會介紹) 

    ●User Defined Function: 從用戶開發的dll 文件提取數據。就目前我認為, 這種方式

    沒有必要。VuGen 支持C 語言的語法,在VuGen 中重新編寫類似的函數應該不難。

    上面的例子中, 我們取隨機數即可。點“Properties… ..” 按鈕, 進行屬性設置窗口

    添入隨機數的取值范圍為(1-50), 選擇一種數據格式。在“屬性” 中有以下幾

    個選項: 

    ◆Each Occurrence:在運行時, 每遇到一次該參數, 便會取一個新的值

    ◆Each iteration:運行時, 在每一次循環中都取相同的值

    ◆Once:運行時, 在每次循環中, 該參數只取一次值

    這里我們用的是隨機數, 選擇Each Occurrence 非常合適。

    下面我們再介紹用數據庫中的用戶名來參數化登陸用戶名。

    框選住登陸名,點鼠標右鍵,彈出對話框,選擇“替換為新參數”彈出對話框,此時參數名輸入:name,參數類型選擇File,如圖

     

    LoadRunner壓力測試實際運用的使用方法
    LoadRunner壓力測試實際運用的使用方法
  16.  

    注意: 參數的文件名不要使用con.dat、pm.dat 或者lpt*.dat 等系統裝置名下面我們將會連接數據庫, 從數據表中選擇用戶名。點“數據向導” 按鈕,顯示如圖

     

    LoadRunner壓力測試實際運用的使用方法
  17.  

    添入連接字符串, 點“創建” 按鈕,選擇事先配置好的ODBC連接。在SQL語句里輸入select查詢語句,出現如圖窗口

     

    LoadRunner壓力測試實際運用的使用方法
    LoadRunner壓力測試實際運用的使用方法
  18.  

    提醒: 在參數數據顯示區, 最多只能看到100 行, 如果數據超過100 行, 只能點“編輯” 按鈕, 進入記事本看。

    “選擇下一行 ” 有以下幾種選擇: 

    ●Sequential: 按照順序一行行的讀取。每一個虛擬用戶都會按照相同的順序讀取

    ●Random: 在每次循環里隨機的讀取一個, 但是在循環中一直保持不變

     ●Unique : 唯一的數。注意: 使用該類型必須注意數據表有足夠多的數。比如Controller 中設定20 個虛擬用戶進行5 次循環, 那么編號為1 的虛擬用戶取前5 個數, 編號為2 的虛擬用戶取6-10 的數, 依次類推, 這樣數據表中至少要有100 個數據, 否則Controller 運行過程中會返回一個錯誤。

    “按編號”指選擇列表中的那一列數據,從左到右分別是1、2、3依次

    通常用在有關聯性的數據上面。我們這里取值Sequential 即可。完成設置關閉即可

    4.3 單機運行測試腳本

    經過以上的各個步驟后, 腳本就可以運行了。運行腳本可以通過菜單或者工具欄來操作。

    執行“ 運行” 命令后,VuGen 先編譯腳本, 檢查是否有語法等錯誤。如果有錯誤,VuGen 

    將會提示錯誤。雙擊錯誤提示,VuGen 能夠定位到出現錯誤的那一行。為了驗證腳本的正

    確性, 我們還可以調試腳本, 比如在腳本中加斷點等, 操作和在VC 中完全一樣, 相信大家誰都不會感到陌生。如果編譯通過, 就會開始運行。然后會出現運行結果。

     

    LoadRunner壓力測試實際運用的使用方法
  19.  


免責聲明!

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



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