LoadRunner基本簡介


# LoadRunner  #

## 安裝要求 ##
    做性能測試的時候,電腦要是一個干凈的系統。
    盡量是裸裝電腦純凈版,不能安裝太多的瀏覽器,支持的有IE、Firefox、chrome
    在win7系統搭建效果比較好。穩定的版本是LR11
    安裝LoadRunner 需要破解,HP是賣服務的。

## 兩種應用 ##
    BS/架構      網絡應用,網站  
    CS/架構     win32應用,使用windows標准空間開發出來的客戶端程序。

## 性能測試工具 ##
    LoadRunner  商業  C語言  Windows
    Jmeter        開源      Java  免費
![](https://i.imgur.com/9nCd1YG.png)
## 性能測試概念 ##

    從時間資源利用率方面,
    為了考驗這兩方面模擬真實生產環境去測試(測試系統的各項性能指標)

## 性能測試的目的 ##

    1. 評估系統的能力 
    2. 識別體系中的弱點 
    3. 系統調優 
    4. 驗證穩定性和可靠性

## LoadRunner 的三大組件 ##

    虛擬用戶腳本生成器    virtual user Generator
    壓力調度控制台          Controller
    壓力結果分析器          Analysis

    LoadRunner由四大組件組成:VuGen、控制器、負載發生器和分析器。


## LoadRunner測試流程 ##

    1.規划測試(計划、用例) 
             確定測試要求,如並發用戶數量、典型業務場景流程;測試計划;設計用例;……

    2.創建VU腳本
             使用Virtual User Generator錄制、編輯和完善測試腳本

    3.定義場景
            使用LoadRunner Controller 設置測試場景。

    4.運行場景
            使用LoadRunner Controller 驅動、管理並監控場景的運行

    5.分析結果
            使用LoadRunner Analysis 生成報告和圖表並評估性能

## LoadRunner常用的術語 ##

1. 並發
    
        狹義(絕對):所有的用戶在統一時間做同一件事情
    
        廣義(相對):多個用戶在一段時間內做不同的事情或者請求

2.  在線
    
        多用戶在一段時間內對系統執行操作
3.  響應時間
    
        從客戶端發出請求到得到響應的整個事件(客戶端響應時間+網絡+服務器響應時間)
4.  事務響應時間
    
        完成相應事務所用的時間
5.  點擊率
    
        客戶端向服務器提交的Http請求數
6.  吞吐量
    
        任意一秒處理客戶端http請求的數據量,以字節(KB)為單位
7.  吞吐率
    
        服務器每秒處理的數據量
8.  TPS
    
        每秒鍾處理的事務數
9.  資源利用率 

        對不同系統資源的使用程度,(cpu、內存、硬盤、網絡)
        
10. 場景
    
        測試場景在LoadRunner中可以設計執行用例的場景
11. 負載發生器
    
        用來產生壓力的機器,模擬用戶對服務器提交請求。    
12. 虛擬用戶
    
        LoadRunner中模擬的用戶即為虛擬用戶對應於真實用戶
13. 虛擬用戶腳本
    
        通過Vuser Generator錄制或開發的腳本。這些腳本用來模擬用戶的行為。 

14. 事務
    
        一個或者多個的操作步驟定義為一個事務
15. 思考時間
    
        請求間的停頓時間

16. 集合點

        結合點是為了更好的模擬並發操作
    
        集合點是在同一個時間點,所有用戶同時執行某一個操作
17. 負載測試
    
        找到系統處理能力的極限
18. 壓力測試
    
        在飽和狀態下系統能夠處理的會話能力
19. 配置測試

        通過對被測系統軟硬環境的調整,了解各種不同環境對系統的影響程度,
        找出最優分配原則
20. 可靠性測試
        
        通過給系統加載一定的業務壓力(例如資源在70%~90%的使用率)的情況下,
        讓應用持續運行一段時間,測試系統在這種條件下是否能夠穩定運行。
## 性能測試策略 ##
    
- 內存泄漏

        程序中已分配的內存由於某種原因程序未釋放或無法釋放,
        造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。
- 基准測試

        單用戶,單場景
- 並發測試

        多用戶單場景
- 綜合場景測試
- 疲勞強度測試
- 數據容量測試
- 極限測試
- 遞增測試
    
#協議分析器:捕獲獲取協議類型, 網上下載協議分析器  問開發

## VUG錄制操作過程 ##
    1. 啟動服務,所有程序-LoadRunner-Samples-web-啟動web服務器
    2. 啟動VUG
    3. 新建腳本,彈出框設置,網絡協議、測試對象URL,保存路徑等。
    4.設置 web(http/html)  錄制的地址  左下角選項 錄制 基於html的腳本  高級默認
    5. 自動打開瀏覽器,用戶進行操作。
            輸入賬號密碼,點擊添加事務保存
            登錄成功,點擊結束事務保存
            #注 事務保存點名字不能更改
    5. 點擊錄制工具條上的關閉按鈕。

## 運行時設置 ##
    設置代碼顯示賬戶密碼。
    log-extended log -

## 檢查點的作用 ##
    檢驗實際結果與預期結果是否一致,檢查點要加在最近一個請求。
    Tree樹策略  選中要檢查的文本,右鍵添加文本檢查點(AddaTextcheck)

## 腳本的組成 ##
    
    1. LoadRunner里面的變成語言是改進后的C語言。
    2. 每個Action都放在一個單獨的Action.c文件里
    3. 快速幫助文檔,按F1

## 錄制時怎么做到的呢? ##
    支持IE、Firefox錄制
    IE 管理加載項:
        名稱BHOManager Class發行者Mercury Interactive Corporation狀態
        已啟用 文件日期2009年1月15日,0:09版本9.1.0.0加載時間0.01s
    
## 參數化 ##

    雙擊選中要參數化的內容。
    方法一,右鍵---【Replace with a new parameter】  參數替換
    方法二,菜單【insert】----【new Parameter…】    新建參數
    Parameter Properties (參數屬性對話框)----我們的參數化設置就通過這個對話框完成
    輸入要參數化的名字,可以是中文
      
## LoadRunner測試流程 ##

### 規划測試
      好的測試規划,能夠指導整個測試過程,以更好的收集到測試目標要求的性能數據。
      規划可以包括測試的計划、用例的設計、場景的設計、性能計數器設置的設計等。
###規划注意事項:
        1.測試用例:測試用例一般根據需要測試的功能進行設計,
                  比如用例為:進入登錄頁面-》填寫用戶名密碼,登錄-》單擊‘新增’按鈕-》填寫門店信息,保存。
        2.場景設計:
           一般情況會設計兩種加壓方式進行測試:
            瞬時加壓(多人同時進行某項業務操作)與逐漸加壓(多人先后進行某項業務操作,操作時間間隔根據計划設定)
        3.性能計數器方面:可以收集CPU時間、內存、硬盤、網絡、數據庫參數、IIS參數等   
###創建Vuser腳本
   2-1 使用Virtual User Generator錄制、編輯和完善測試腳本。

   2-2  我們可以根據被測應用是B/S結構還是C/S結構來選擇協議:
            A 如果是B/S結構,就要選擇Web(HTTP/HTML)協議
            B 如果是C/S結構,則可以根據后端數據庫的類型來選擇
            C 對於沒有數據庫的WINDOWS應用,可以選擇Windows Sockets協議。


      #  2-3 協議怎么知道: A 問開發 B 用協議分析器 C 網上有免費的協議分析工具 #

      # new single protocols  scrip 單協議 #
      # new multiple  protocols  scrip  多協議  #
      #  new recent protocols  scrip 最近用的協議 #



            1  熟悉 創建腳本工具欄
   2-4 application type : 
             internet application----------B/S架構
            win32 application -----C/S架構
   2-5 program to record ----默認IE,自帶firefox瀏覽器
   2-6 URL address------指定起始URL
   2-7 working directory-----工作目錄,一般默認
   2-8 Record into action ----選擇要錄制的部分

注意:
   VuGen的腳本分為三個部分:
   Vuser_init,Action,Vuser_end。
  # 其中Vuser_init和Vuser_end都只能存在一個,而Action可分成無數多個部分,可以通過點擊旁邊的 #


2-6 options選項:
             recording-----錄制選項:
                1 基於瀏覽器的應用,推薦用HTML-based script方式錄制
                2 不是基於瀏覽器的應用,推薦用URL-based方式錄制
                3 基於瀏覽器的應用程序中使用了HTTPS安全協議,也要使用URL-based方式錄制
                4 如果基於瀏覽器的應用程序中包含Javascript,
                  並且該腳本向服務器產生了請求,比如DataGrid分頁按鈕等,
                  就要使用URL-based方式錄制
           
2-7 HTML-based script方式錄制與URL-based script錄制的區別:

    A --- HTML-based是根據瀏覽器的緩存文件生成的,每個函數比較長,函數個數比較少。
           # 腳本比較容易維護。推薦使用。 #
          #  缺點:不能真實模擬出用戶行為 #
    B---3.    URL-based Script是根據瀏覽器的請求順序生成的,每個函數比較短,但是個數比較多,
            # 此種方法更真實,缺點是腳本很長,難以維護。 #
    C----2.    前者錄制的簡單些,它只錄制LR緩存中沒有的記錄,后者錄制的復雜些,
             它不僅錄制LR緩存中沒有的記錄,
             # 緩存中有的記錄也錄制下來,所以錄制的比較全面 #

2-8  編碼問題--advance---AdvancedSupport charset中設置編碼格式:UTF-8;


                      2 熟悉錄制腳本工具欄

     從左到右分別是:
       開始錄制
       結束錄制
       暫停錄制
       編譯腳本
       腳本所屬部分
       創建新的action
       插入事物起始點
       插入事物結束點
       插入集合點
       插入注釋
       設置選項option
       插入test檢查點

 #  錄制過程 #


    1   # 若錄制一個登陸操作,輸入用戶名和密碼后點擊 開始事物,然后繼續錄制,
           # 點擊Login按鈕登陸,登陸成功后,一定要點擊 結束事物 #          2  vuser_init:錄制登錄的腳本,此處的腳本只有在初始化時才會被執行        Vuser_Action():有意義語句塊,真正執行測試點操作的腳本主體部分,可以迭代        Vuser_end():錄制退出的腳本,此處的腳本只有在釋放用戶時才被執行     # 注:其實類似於自動化里的setUp()和tearDown()兩個函數 # 3 在一個錄制好的腳本中:         web_url是瀏覽器地址欄的URL。 GET請求         web_link是點擊在<a href= ...>和<a>之間的文本超鏈接。         web_image是點擊HTML的<img href…。         web_submit_form 是在前面操作的上下文中的GET或PUT表單上點“提交”,         前面的操作被VuGen在基於HTML模式下錄制下來了。         web_submit_data,POST    請求 4 打開Run-time Setting:         General中:         Run Logic:設置迭代次數         Pacing:設置迭代間隔時間         Log:設置運行時日志的類型         Think Time:設置錄制時形成的Think Time時間比例,         事務內的Think Time要忽略! 5  插入集合點     形成腳本后,點擊Insert,選擇Rendezvous 6 事務定義:通常為了衡量服務器的性能,我們需要定義事務。插入事務操作可以在錄制過程中進行,也可以在錄制結束后進行。  6-1 事務的目的主要有兩點:             統計事務的成功率。             統計事務的響應時間。               繼續錄制,錄制事務動作結束后,必須要結束掉這個事務。          同樣可以在insert菜單欄或工具欄結束這個事務。-----事物是成對出現的 7 文本檢查點:        目的:為了驗證實際結果與預期結果是否一致。   7-1 添加文本檢查點有兩種方式:在樹結構中添加、在代碼頁面添加。      在樹結構中添加檢查點:            將腳本切換到樹結構,在Server Response頁面上找到你要check的文本內容,            並執行鼠標右鍵,選擇Add a text check     添加成功后,切換到代碼界面,找到登錄請求,會發現前面已經自動多出一行代碼,           # 注意:在樹結構中添加檢查點必須在server response下做檢查點。 # # 記憶:凡是帶reg的函數都需要放在要操作請求的前面。注冊后,查找速度更快,在內存中查找  # 插入檢查點:     選擇最近一個事務的請求,點擊樹視圖,選擇添加檢查的文字,右擊添加文本檢查點。     函數:web_reg_save_find("search=Body",....LAST); 8 數據池策略(參數化)            為了使腳本更靈活,我們可以對腳本進行參數化,以登錄時的用戶名和密碼為例,          在腳本中選中jojo,右鍵單擊選擇Replace with a parameter            對腳本參數化后,可以選擇工具欄中的Param List,設置參數化策略 8-3 其中,Select next row為取下一個數據的方式,有四個選擇:         Sequential:每個VU按照順序讀取。每一個虛擬用戶都會按照相同的順序讀取。         Random:每個VU隨機讀取一個。         Unique:每個VU順序取唯一的值。注意:使用該類型必須注意數據池中數據充足。         Same Line As 某個參數(比如Name):和前面定義的參數Name 取同行的記錄。通常用在有關聯性的數據上面。  8-4 Update value on為更新值方式,有三個選擇         Once --在所有的迭代中都使用同一個值          each iteration ---每次迭代都要取新值          each occurrence ---只要發現該參數就要重新取值,也就是如果一個action中有多個該參數,每遇到一個就要重新取一個值 8-5 When out of values是當select next row選擇unique時才能用到,是數據超出范圍時的設置              Abort Vuser 中止腳本          Continue in a cyclic manner 繼續循環取值          Continue with last value  繼續取最后一個值 9  Run-time Setting 工具欄      9-1 Run Logic控制腳本迭代的次數      9-2  Pacing是設置兩次迭代時的間隔。                  有3個設置:                        第一個意為第一次迭代結束后立即開始第二次迭代                       第二個意為兩次迭代直接有一個隨機的時間間隔                       第三個意為兩次迭代之間有固定的間隔時間      9-3 Think Time有兩個設置:Ignore think time和Replay think time             A  選擇Ignore think time,那么VuGen在腳本回放過程中將不執行lr_think_time()函數,這樣將給服務器造成更大的壓力。     B  選擇Replay think time…,那么還有以下四種選擇:              按照錄制過程中的think time值回訪腳本             按照錄制錄制過程中的think time值的整數倍回訪腳本             指定一個最小值和最大值,按照兩者之間的一個隨機數的值來回訪腳本             限制think time的最大值,這樣VuGen在回放腳本過程中將把腳本中think time大於該限制值的,用該限制值替代。   9-4 帶寬---一般默認最大帶寬  9-5 日志調試   開啟/關閉 logging功能       標准日志       擴展日志      參數設置,Run-Time Setting設置信息      服務器返回的數據,響應頭、響應體      高級跟蹤,連接服務器、dns緩存、請求頭、請求體等等   # 如果是真實環境選擇 第一個選項---只當有錯誤時發送日志---如果不這樣日志將把內存占滿 3 定義場景      使用LoadRunner Controller 設置測試場景 # 做並發測試,首先把腳本調通,包括參數話,設置相關檢查點,確保腳本能順利跑起來,另外還有在腳本中插入集合點,設置集合點的目的主要是為了做並發測試,然后保存  # 腳本中的  thinktime 要注釋掉,有影響 #      3-1定義場景步驟:              打開controller,選擇manual scenario (手動選擇場景)              在Browse 中選擇要執行的腳本,然后點擊OK            1    scenario  schedule設置:              進入場景設置頁面后,shedule name ---名字可以自己定義              schedule by :可以選擇scenario  或者  group by ----后者可以分組,分先后順序               runmode:選擇 real world schedule            2 global scenario 設置:                                 Initalize(ɪˈnɪʃəlaɪz)-----有三個選項--選擇initalize each Vuser just before it runs                                  start vuser----先設置一個vuser 做基准測試,勾選simutaneously---同時的意思                                  duration([djuˈreɪʃn)----持續時間,可以設長點,因為可能不知道多長時間奔潰                                  stop user---停止所有用戶,可以同時停止,不會造成對系統的壓力          3 集合點設置---打開 工具欄 中scenario 下面的rendezvous(ˈrɒndɪvu)--點擊policy(策略)進行設置---選擇當所有用戶到達再進行 release釋放           4 runtime setting 設置:                                run log----迭代次數不需要設置,因為之前已經設置了時間                                 pacing(步速)----選擇第三個,選擇random(隨機的)---intervals(間隔)--選擇2到3s--使腳本    有個收尾的動作時間                                 log----選擇send message only when  an error occues--然后后面勾選Extended log(日志擴展)--parameter  sustitution(參數替代)                                think time-----選擇 ignore thinktime--做並發忽略思考時間---有這個思考時間實際上是模擬人的思考                                 miscellaneous(ˌmɪsəˈleɪniəs)雜物的意思-----選擇continue on error 和 run vuser as a thread                                 network下面的speed simulation (sɪmjuˈleɪʃn)(模仿)----選擇最大帶寬                                Browser下面的browser  emulation(emjʊ'leɪʃn)(模仿)----選擇 simulation a new user on each interation (交互影響) # 設置完成------點擊編譯 #             5  點擊 scenario start ----運行穩定后逐漸添加用戶 5# 關聯#          5-1.關聯原理:有一種服務器比較聰明他會把一些寫死的數據變成動態的Session Id 所以引入了關聯          5-2.怎么去判斷腳本有沒有關聯?a.腳本錄制正確,回放失敗,可能腳本有關聯          5-3.進一步驗證?錄制兩份相同業務的腳本進行對比tools - compare with script-打開wdiff找到腳本不一致的地方即關聯處           5-4.找到關聯后如何處理?                   a.自動關聯:先讓腳本回放一遍,按Ctrl+F8 選中需要關聯的地方-按correlate                   b.手動關聯:web_reg_save_param("id","LB=","RB=",LAST);找到關聯處復制-在generation log一般日志里面找到服務器最先給你的響應 -            在找相應的請求 -把關聯函數放在請求之前-在腳本里面出現關聯的地方用變量{id}替換         函數:web_reg_save_param("ID","LB=","RB=",LAST); 6 登錄和注冊要設置檢查點    6-1 登錄要進行關聯    6-2 注冊要進行參數化    # 6-3 購買機票----Action 中的航班地點要參數化,航線要進行關聯----航線有四條--ord=random number隨機數---業務邏輯 ---性能測試要熟悉業務     6-4 檢查點放在事物結束前的第一個請求,如果是該請求是圖片,則向上一個請求     6-5  關聯 ---先找到關聯的相關請求--通過ID查找--再通過快照再腳本中查找該請求---關聯放在該請求前面 4 運行場景        使用LoadRunner Controller 驅動、管理並監控場景的運行。 5 分析結果       使用LoadRunner Analysis 生成報告和圖表並評估性能。 # 綜合場景/壓力調度控制台 # 打開controller(壓力調度控制台) 選擇手工場景 選擇錄制的腳本(多個腳本,多個添加) 場景設置 scenario          真實場景 初始化選型  運行前初始化所有的用戶 運行設置(設置用戶數量)選擇第三個,每隔...多長時間加... 設置場景運行情況       每隔...時間執行... 打開運行時設置,run-time-setting 設置log日志為在出錯是顯示詳細信息 think time 限制是靠時間為2-3秒 雜項里選擇出錯是運行,選用線程數(一個進程等於50個線程),沒有代理,最大帶寬。新用戶沒有緩存 ## 結果分析 ## 右鍵 merge graph 選擇合並圖片


免責聲明!

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



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