性能自動化測試,LoadRunner壓力測試實際項目案列分析

主題詞:Loadrunner 工具 壓力測試

LoadRunner壓力測試實例

摘要:本文通過實例講解介紹了LoadRunner 工具的使用,介於公司的實際情況,文中主要是對工具的基本使用做了詳細描述,高級運用方面除性能計數器與參數設置外其它均未涉及,待以後補充。目的是使公司人員根據該手冊便可以獨立運用Loadrunner進行壓力測試

1 LoadRunner 概要介紹

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

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

企業架構進行測試。通過使用LoadRunner , 企業能最大限度地縮短測試時間, 優化性能和加速應用系統的發布周期。目前企業的網路應用環境都必須支持大量用戶,網路體系架構中含各類應用環境且由不同供應商提供軟體和硬體產品。難以預知的用戶負載和愈來愈複雜的應用環境使公司時時擔心會發生用戶響應速度過慢, 系統崩潰等問題。這些都不可避免地導致公司收益的損失。Mercury Interactive 的 LoadRunner 能讓企業保護自己的收入來源, 無需購置額外硬體而最大限度地利用現有的IT 資源, 並確保終端用戶在應用系統的各個環節中對其測試應用的質量, 可靠性和可擴展性都有良好的評價。LoadRunner 是一種適用於各種體系架構的自動負載測試工具, 它能預測系統行為並優化系統性能。LoadRunner 的測試對象是整個企業的系統, 它通過模擬實際用戶的操作行為和實行實時性能監測, 來幫助您更快的查找和發現問題。此外,LoadRunner 能支持廣范的協議和技術, 為您的特殊環境提供特殊的解決方案。

1.1 基本步驟

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

1)Vvitrual User Generator 創建腳本

創建腳本,選擇協議

錄製腳本

編輯腳本

檢查修改腳本是否有誤

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

創建Scenario,選擇腳本

設置機器虛擬用戶數

設置Schedule

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

3)運行腳本

? 分析scenario

4)分析測試結果

2 安裝LoadRunner 中文版

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

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

2.1 系統要求

目前部門的測試機和工作機器足可以滿足LoadRunner7.8 的最低要求。不過要比較好

的運行LoadRunner, 內存最好在512M 以上, 安裝LoadRunner 的磁碟空間至少剩餘500M。操作系統最好為Windows 2000。

2.2 安裝過程

LoadRunner7.8中文版安裝基本分兩個步驟:首先安裝LoadRunner7.8英文原版,然後安裝中文語言插件包

LoadRunner7.8英文原版存放位置:.138.149.139 test toolsLR7.8nt.rar將壓縮文件拷貝解壓到本機的安裝,過程比較簡單要開始安裝LoadRunner,以Administrator 的身份登陸Windows2000 後,運行LoadRunner 安裝目錄下Setup.exe 即可進入安裝程序。

1. 在「Registration Information」 界面中, 輸入序列號( 不用改動, 就是n 個8)

2. 在安裝類型界面中, 選擇一種安裝類型

下面簡單的對這三種安裝類型進行介紹

●Standalone Installation 將要安裝LoadRunner 在一台計算機上

●Network Installation 把LoadRunner 安裝在一個網路驅動器上, 這樣任何能連接到這個

網路驅動器的計算機都可以使用LoadRunner 的部分或者全部組件。

●Network Installation and shortcuts 和Network Installation 類似,不同的只是這種類型將把

自己的計算機配置成Workstation 來運行LoadRunner。如果選擇了第二項, 我們還需要

進行2.3 的安裝來配置Workstation.。考慮到我們是自己學習研究學習, 選擇第一種安裝方法。

3. 在安裝方式界面中, 需要選擇一種安裝方式。建議選擇「 自定義安裝」, 這樣所有的組件都會一次安裝。

下面簡單的對各個安裝方式進行介紹

●Typical Installation 安裝比較通用的組件, 包括Controller、Vuser、在線幫助和腳

該選項適合於控制Vusers 的機器。

●Load Generator 只安裝運行Vusers 產生負載的組件。該選項適合於只產生負載,

而不控制Vusers 的機器。

●MI Listener 安裝MI Listener 組件, 用來透過防火牆來運行Vusers 並且監視性能。

●Custom Installation 自定義安裝, 我們將使用該選項, 安裝全部的組件。

4. 在「License Information」 中輸入License Key 後,Next, 繼續

100個用戶(無時間限制):AEAMAUIK-YAFEKEKJJKEEA-BCJGI

10000個用戶(有時間限制):AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB

5. 如果是網路安裝,最好把網路驅動器映射成本機的一個盤符, 安裝LoadRunner 的各級目錄不要包含中文字元。

6. Next 後進入拷貝文件的界面

7. 拷貝文件完成後, 進入「User Login Settings」 界面。

●Allow virtual users to run on this machine without user login 需要在下面輸入域、用

戶名和密碼, 這樣運行Load Generator 的機器會自動登陸到網路,

●Manual log in to the Load Generator machine 運行Vusers 時, 自動登陸到網路,

無需登陸用戶名和密碼, 這樣Vusers 就會不用任何干預自動的啟動運行。推薦

選擇該項。這裡選擇第一項和第二項都可以。

8. 重新啟動, 安裝完成

LoadRunner7.8英文原版存放位置:.138.149.139est tools LoadRunner7.8中文版.rar

將壓縮文件拷貝解壓到本機的安裝.。過程比較簡單要開始安裝以Administrator 的身份登陸Windows2000 後,(注意要退出已經運行的英文原版)運行安裝目錄下Setup.exe 即可進入安裝程序,安裝過程中一切人機交流窗口多選擇默認「下一步」即可

注意:解壓文件存放的文件夾不可起中文名字,安裝目錄最好使用默認,如果更改則安裝目錄不要使用中文名!

3.項目背景介紹

3.1 背景概述

「LMS網校考試平台」是一個典型的三層B/S架構的MIS系統(客戶端/應用伺服器/資料庫管),中間層是業務邏輯層,應用伺服器處理所有的業務邏輯,但應用伺服器本身不提供負載均衡的能力,而是利用開發工具提供的ORB(對象請求代理)軟體保證多個應用伺服器間的負載均衡。本次測試的目的是:進行應用伺服器的壓力測試,找出應用伺服器能夠支持的最大客戶端數。方法是:按照正常業務壓力估算值的1~10倍進行測試,考察應用伺服器的運行情況。

3.2壓力測試用例

場景描述一:

1. 用戶登錄的lmm模塊,總共登陸24個用戶,所有用戶都同時並發操作。

2. 用戶點擊「登記的教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

5. 點擊「返回LMS」按鈕,返回到lmm模塊,點擊「退出」按鈕,退出系統

場景描述二:

1. 用戶登陸lmm模塊,總共登錄48個用戶,每1秒登錄1個用戶

2. 用戶點擊「已登記教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習;

5. 點擊「返回LMS」按鈕,返回到lmm模塊,點擊「退出」按鈕,退出系統

場景描述三:

1. 用戶登錄的lmm模塊,總共登陸48個用戶,所有用戶都同時並發操作。

2. 用戶點擊「登記的教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

5. 點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

場景描述四:

1. 用戶登錄的lmm模塊,總共登陸48個用戶,每秒同時登錄10個用戶。

2. 用戶點擊「登記的教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

5. 點擊「返回LMS」按鈕,返回到lmm模塊,點擊「退出」按鈕,退出系統

場景描述五:

1. 用戶登錄的lmm模塊,總共登陸100個用戶,所有用戶同時並發操作。

2. 用戶點擊「登記的教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

5. 點擊「返回LMS」按鈕,返回到lmm模塊

場景描述六:

1. 用戶登錄的lmm模塊,總共登陸200個用戶,所有用戶同時並發操作

2. 用戶點擊「登記的教程」

3. 用戶點擊「啟動」,進行課程學習,進入DS模塊

4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

5. 點擊「返回LMS」按鈕,返回到lmm模塊,點擊「退出」按鈕,退出系統

場景描述七:

1. 戶登錄的lmm模塊,總共登陸24個用戶。所有用戶都同時並發操作

2. 所有用戶都同時並發操作,戶點擊「登記的教程」中「test」課件

使用自發測試工具,目的測試24個用戶同時打開課件時伺服器性能

場景描述八:

1. 登錄的lmm模塊,總共登陸60個用戶。所有用戶都同時並發操作

2. 有用戶都同時並發操作,戶點擊「登記的教程」中「test」課件

使用自發測試工具,目的測試60個用戶同時打開課件時伺服器性能

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

4.1錄製基本的用戶腳本

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

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

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

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

●測試lms.ah.sp.com.cn/lms-lm選擇要把錄製的腳本放到哪一個部分, 默認情況下是「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 中的部分。

●點「 選項 」按鈕, 進入錄製的設置窗體, 這裡一般情況下不需要改動。

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

4.2 完善測試腳本

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

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

4.2.1 插入事務

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

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

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

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

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

4.2.2 插入集合點

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

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

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

成的動作。

4.2.3 插入注釋

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

4.2.4 參數化輸入

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

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

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

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

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

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

個特定名稱的值。

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

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

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

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

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

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

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

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

框選住登陸名,點滑鼠右鍵,彈出對話框,選擇「替換為新參數」彈出對話框

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

●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,如圖

點「屬性」按鈕, 出現以下窗口

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

使用第2 項, 選擇「使用手動指定SQL語句」點下一步,出現如圖窗口

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

提醒: 在參數數據顯示區, 最多只能看到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 中完全一樣, 相信大家誰都不會感到陌生。如果編譯通過, 就會開始運行。然後會出現運行結果。

5實施測試

5.1 選擇腳本,創建虛擬用戶

啟用「controller」彈出如圖窗口

選擇剛才錄製並保存好的腳本,添加到方案中,點「確定」出現如圖

根據需要修改虛擬用戶數量,這裡我們取「100」根據實現場景設計,取不同數字

點「編輯計劃」細化方案,計劃名里選擇計劃種類:加壓,緩慢加壓、默認計劃或新建立計劃。

默認計劃:同時載入所有vuser,直到完成

加壓:每15秒啟動2個vuser 持續時間5分種

緩慢加壓::每2分種啟動2個vuser 持續時間10分種

這裡我們選擇「加壓」 出現如圖

點「加壓」標籤設置加壓方法,點「持續時間」標籤選擇完成時間,點「加壓」標籤選擇退出方法,點「方案開始時間」可以定義時間後自動到點執行,並在一個限定的時間範圍內結束,所有設置完畢後,點「ok」返回上一級窗口,點「開始方案」啟動運行,出現如圖窗口

5.2 添加windows資源監視窗口

loadruner默認性能監視窗口四個,分別是「運行vuser「、」事務響應時間「、

「每秒點擊次數」最後一個可以根據用戶自己選擇現實什麼窗口。打開可用圖中目錄樹,

選擇系統資源,找到windows資源雙擊,則windows資源監視窗口便自動替換原窗口如上圖。當然loadrunner也可以同時顯示1-16個窗口,方法是點右鍵,在彈出菜單中選擇「查看圖」選擇顯示的圖數,也可以自定義數字。

5.3 添加windows性能計數器

滑鼠選擇windows資源監視窗口,點擊右鍵彈出菜單中選擇「ADD Measurements..」彈出如圖窗口

點「添加」把監視的伺服器ip地址輸入,點確定,如圖

如果可以正常聯機到伺服器,則在資源度量中會顯示全部計數器,此時如果點「確定」則系統默認全部選中,在監視窗口中會顯示所有性能曲線,無法單獨過濾顯示某條曲線,如果選中某個計數器後點「添加」則彈出該項目下的其它性能指標,選擇需要的計數器後點「添加」如圖

此時要注意,你登陸客戶端(也就是你裝有loadrunner機器)的用戶應該是管理員身份,同時還要保證該用戶在被監視的伺服器上也是管理員身份。這樣選擇雖然監視窗口中仍會顯示所有性能曲線,但是可以通過滑鼠右鍵彈出菜單,選中你指定的某條曲線單獨顯示。方法是雙擊監視窗口放大顯示,然後右鍵選擇「僅顯示指定圖」監視窗口還可以互相疊加等操作,功能強大,通過右鍵菜單選擇可以進行複雜顯示操作。常用的還有web程序伺服器圖、資料庫伺服器資源圖等,添加方法雷同。計數器有那些,有什麼含義,理想值是多少,可以參見第六章節。

5.4 執行腳本

此時設置完畢後,那就簡單了,點擊「開始方案」注意觀察吧。

5.4.1 分析結果

腳本執行完畢後,loadrunner會自動分析結果,生成分析結果圖或表,方法是點導航欄「結果」選現,在彈出窗口中選擇「分析結果」

6 分析以及監視場景

在運行過程中, 可以監視各個伺服器的運行情況(DataBase Server、Web Server 等)。

監視場景通過添加性能計數器來實現。這一章非常的重要, 確定系統瓶頸全靠它了。

下面重點講講需要添加那些計數器, 以及那些計數器代表什麼意思。由於Win2000 Professional、Server 以及Advanced Server 提供的計數器不完全相同, 這裡我們討論將以Server 為基準。監視場景需要在Run 視圖中設置然後, 出現添加計數器的對話框其他的操作就和控制面板「 性能」 中添加性能計數器的操作一樣, 這裡不再詳細說明。本章主要說明一下各個系統計數器的含義( 資料庫的計數器不做重點, 只是拿SQL Server2000 作為例子進行說明。因為資料庫各個版本之間差異比較大, 請參考您使用的資料庫系統的幫助)。

6.1 Memory相關

內存是第一個監視對象, 確定系統瓶頸的第一個步驟就是排除內存問題。內存短缺的問題可能會引起各種各樣的問題。

Object( 對象)

Counters

Description( 描述)

參考值

Memory

Available MBytes

物理內存的可用數( 單位 Mbytes)。默認情況下IIS5.0 使用50%的可用物理內存, 作為IIS 的文件緩存(file cache)。IIS 基本佔用 2.5 MB,每個附加連接將在此基礎上佔用 10 KB 左右

至少要有10% 的物理

Memory

Page/sec

Page Faults/sec

Pages Input/sec

Pages Input/sec

Page Reads/sec

Transition

Faults/sec

物理內存的可用數( 單位 Mbytes)。默認情況下IIS5.0 使用50%的可用物理內存, 作為IIS 的文件緩存(file cache)。IIS 基本佔用 2.5 MB,每個附加連接將在此基礎上佔用 10 KB 左右。至少要有10% 的物理內存值當處理器向內存指定的位置請求一頁( 可能是數據或代碼) 出現錯誤時, 這就構成一個Page Fault。如果該頁在內存的其他位置, 該錯誤被稱為軟錯誤( 用Transition Fault/sec 數器衡量); 如果該頁必須從硬碟上重新讀取時, 被稱為硬錯誤。許多處理器可以在有大軟錯誤的情況下繼續操作。但是, 硬錯誤可以導致明顯的拖延。Page Faults/sec 是處理器每秒鐘處理的錯誤頁( 包括軟錯誤和硬錯誤)。Pages Input/sec 是為了解決硬錯誤頁, 從硬碟上讀取的頁數, 而Page Reads/sec 是為了解決硬錯誤, 從硬碟讀取的次數。如果 Page Reads/Sec 比率持續保持為 5, 表示可能內存不足。Pages/sec 是指為解析硬頁錯誤從磁碟

讀取或寫入磁碟的頁數。

Page/sec 推薦00-20( 如果伺服器沒有足夠的內存處理其工作負荷, 此數值將一直很高。如果大於80,表示有問題)。這些計數器的值比較低, 說明Web伺服器響應請求比較快, 否則可能是伺服器系統內存短缺引起( 也可能是緩存太大, 導致系統內存太少)。Page Input/sec 的值可以衡量出硬錯誤頁發生的速率, 通常它的值會於或者等於Page Reads/sec。Memory Cache Bytes

Memory

Cache Bytes

文件系統緩存(File System Cache)

默默認情況下認情況下為50%的可用物理內存。如為50%的可IIS5.0 運行內存不夠時, 它會自動整理用物理內存緩存。需要關注該計數器的趨勢變化

Internet File Cache Hits %

File Cache Hits %是文件緩存命中全部( 對於一個Information File Cache 緩存需求的比例, 反映了IIS 的文件緩大部分是靜Services Flushes 存設置的工作情況。而File Cache Hits 態網頁組成

Global File Cache Hits 是文件緩存命中的具體值,File Cache 的網站)File Flushes 是自伺服器啟動之後文件緩存Cache Hits% 刷新次數, 如果刷新太慢, 會浪費內存; 如果刷新太快, 緩存中的對象會太頻繁屬於非常好! 的丟棄生成, 起不到緩存的作用。通過File Cache Hits 和File Cache Flushes 可以得到一個適當的刷新值( 參考IIS 的設置ObjectTTL 、MemCacheSize 、MaxCacheFileSize)

Memory

PoolPaged BytesPool Nonpaged Bytes

Pool Paged Bytes Pool Nonpaged Bytes 這兩個計數器監視伺服器上各個進程的分頁池位元組數和非分頁池位元組數。

在訪問數比較固定的情況下, Pool Nonpaged Bytes 是比較定的, 如果訪問數逐步增加, 該值會緩慢的增加

Process

Virtual Bytes

Working Set 計數器

Virtual Bytes( 實Virtual Bytes 數器監視IIS5.0 保留的例inetinfo 、虛地址空間的數量, 實例化為inetinfo dllhost) Working Set( 實例進程(IIS 運行的核心)和Dllhost 進程( 隔離/ 連接池的應用程序必需的)。inetinfo 、dllhost) Working Set 計數器反映了每個進程使Dllhost#n 進程都用的內存頁的數量。系統的內存頁(pool 要添加計數器Page) 只能由操作系統的核心模塊直接訪問, 用戶進程不能訪問。運行IIS5.0 的伺服器上, 負責web 連接的線程以及它需要的一些對象都保存在未分頁的池中(nonpaged pool), 比如文件句柄和socket 連接

Process

Private Bytes

指這個處理不能與其他處理共享的、已分配的當前位元組數

Memory

Committed

Bytes

是指以位元組表示的確認虛擬內存。(確認內存是指為磁碟分

頁文件在磁碟上保留的空間以便在需推薦不超過物理內存的75%

要將其寫回磁碟時使用)

推薦部超過物理內存的75%

內存問題主要檢查應用程序是否存在內存泄漏。如果發生了內存泄漏,ProcessPrivate Bytes 計數器和ProcessWorking Set 計數器的值往往會升高, 同時Available Bytes 的值會降低。內存泄漏應該通過一個長時間的, 用來研究分析當所有內存都耗盡時, 應用程序反應情況的測試來檢驗。

6.2 Processor相關

Object( 對象)

Counters

Description( 描述)

參考值

Sytem

Processor Queue

Length

Processor Queue Length 是指處理列隊中的線程數。即使在有多個處理器的計算機上處理器時間也會有一個單列隊。不象磁碟計數器, 這個計數器僅計數就緒的線程, 而不計數運行中的線程。如果處理器列隊中總是有兩個以上的線程通常表示處理器堵塞

小於2。顯示在由 Web 伺服器所有處理器共享的隊列中等待執行的線程數。處理器瓶頸會導致該值持續大於2

Processor

%Processor Time

CPU 使用率。這是查看處理器飽和狀況的最佳計數器。顯示所有 CPU 的線程處理時間。如果一個或多個處理器的該數值持續超過 90%,則表示此測試的負

載對於目前的硬體過於沉重。為多處理器伺服器添加該計數器的 0 到 x 個實例

小於75%。排除內存因素, 如果該計數器的值比較大, 而同時網卡和硬碟的值比較低, 那麼可以定CPU 瓶頸

System

Context Switches/sec

Context Switches/sec 指計算機上的所有處理器全都從一個線程轉換到另一個線程的綜合速率。當正在運行的線程自動放棄處理器時出現上下文轉換, 由一個有更高優先就緒的線程佔先或在用戶模式和特權(內核)模式之間轉換以使用執行或分系統服務。它是在計算機上的所有處理器上運行的所有線程的Thread: Context Switches/sec 的總數並且用轉換數量衡量。在系統和線程對象上有上下文轉換計數器

如果切換次數到5000*CPU個數和10000*CPU 個數中, 說明它忙於切換線程而不是

處理ASP 腳本

Processo

%Privileged Time

% Privileged Time 是在特權模式下處理線程執行代碼所花時間的百分比。當調用 Windows 系統服務時, 此服務經常在特權模式運行, 以便獲取對系統專有數據的訪問。在用戶模式執行的線程無法訪問這些數據。對系統的調用可以是直接的(explicit)或間接的(implicit), 例如頁面錯誤或中斷。不像某些早期的操作系統,Windows 除了使用用戶和特權模式的傳統保護模式之外, 還使用處理邊界作為分系統保護。某些由Windows 為您的應用程序所做的操作除了出現在處理的特權時間內, 還可能在其他子系統處理出現

Time

Switches/sec ( 實例化inetinfo 和dllhost

如果你決定要增加線程位元組池的大小,你應該監視這三個計數器( 包括上面的一個)。增加線數可能會增加上下文切換次數, 這樣性能不會上升反而會下降。如果十個實例的上下文切換值非常高, 就應該減小線程位元組池的大小

Processor

Interrupts/sec %DPC Time

Time 這兩個計數器能夠反映處理器用在處理中斷以及推遲處理調用的時間。如果處理器使用率超過Interrupts/sec 指處理器每秒鐘接收並維90% 且 硬體中斷的平均值。正常的線程操作在中斷時懸停。大多數的系統時鐘每Interrupt Time 大於隔 10 毫秒中斷處理器一次, 形成了間15%, 則處理隔活動的後台

如果處理器使用率超過90%,且Interrupts/sec time大於15%則處理器可能負載過重,並發生中斷

Processor Interrupts/sec %DPC Time 這兩個計數器能夠反映處理器用在處理中斷以及推遲處理調用的時間。如果處理器使用率超過Interrupts/sec 指處理器每秒鐘接收並維90% 且 硬體中斷的平均值。正常的線程操作在中斷時懸停。大多數的系統時鐘每Interrupt Time 大於隔 10 毫秒中斷處理器一次, 形成了間15%, 則處理隔活動的後台。器可能負荷過重, 並發生中斷。判斷應用程序是否存在處理器瓶頸的方法: 如果Processor Queue Length 顯示的隊列長度保持不變(>=2) 個並且處理器的利用率%Processor Time 超過90%, 那麼很有可能存在處理器瓶頸。

如果發現Processor Queue Length 顯示的隊列長度超過2, 而處理器的利用率卻一直很

低, 那麼或許更應該去解決處理器阻塞問題, 這裡處理器一般不是瓶頸。如果系統由於應用程序代碼效率低下或者系統結構設計有缺陷而導致大量的上下文切換(Context Switches/sec 顯示的上下文切換次數比較大), 那麼就會佔用大量的系統資源。如果系統的吞吐量降低並且CPU 的使用率很高,並且此現象發生時切換水平在15000 以上, 那麼意味著上下文切換次數過高同時還可以比較Context Switches/sec 和%Privileged Time 來判斷上下文切換是否過量。如果後者的值超過40%, 且上下文切換的速率也很高, 那麼應該檢查為什麼會產生這樣高的上下文切換。

6.3 網路吞吐量以及帶寬

Object

Counter

Description

參考值

Network Interface

Bytes Total/se

Bytes Total/sec 為發送和接收位元組的速率, 包括幀字元在內。判斷網路連接速該計數器的值和目前網度是否是瓶頸, 可以用該計數器的值和絡的帶寬相目前網路的帶寬比較

改計數器的值和目前網路帶寬相除,結果應該小於50%

Web Servic

Maximum Maximum Connections

Maximum Maximum Connections :「 最大連接數」 Attempts Total Connection Attempts :「 連接嘗試總數」 是從服務啟動時利用 Web 服務嘗試連接的總數。該計數器應用於全部所列的實例。

6.4 磁碟相關

Object( 對象) Counters( 計數器名稱) Description( 描述) 參考值

Object

Counters

Description

參考值

Network

Bytes Total/sec

Bytes Total/sec 為發送和接收位元組的速Interface 率, 包括幀字元在內。判斷網路連接速度是否是瓶頸, 可以用該計數器的值和目前網路的帶寬比較

Processo

%Processor Time

% Privileged Time

CPU 使用率該計數器對應於處理器執行Windows. 2000 內核命令( 如處理SQL Server I/O 請求) 所用時間的百分比。如果 Physical Disk 計數器的值很高時該計數器的值也一直很高, 則考慮使用速度更快或效率更高的磁碟子系統。

PhysicalDisk

%Disk Time

% Disk Time 指所選磁碟驅動器忙於為讀或寫入請求提供服務所用的時間的百分比。如果三個計數器都比較大, 那

么硬碟不是瓶頸。如果只有%Disk Time 比較大, 另外兩個都比較適中, 硬碟可能會是瓶頸。在記錄該計數器之前, 請

在 Windows 2000 的命令行窗口中運行 diskperf -yD 。若數值持續超過 80%, 則可能內存泄漏。

PhysicalDisk

AverageDisk

Queue Length

指讀取和寫入請求(為所選磁碟在實例間隔中列隊的)的平均數。

PhysicalDisk

PhysicalDisk

指在此盤上讀取操作的速率

PhysicalDisk

Disk Writes/sec

指在此盤上寫入操作的速率

判斷磁碟瓶頸的方法是通過以下公式來計算:

每磁碟的I/O 數 = [讀次數 + (4 * 寫次數)] / 磁碟個數

如果計算出的每磁碟的I/O 數大於磁碟的處理能力, 那麼磁碟存在瓶頸。

6.5 Web應用程序

這裡以ASP.NET 開發的Web 應用程序為例進行說明。

Object

Counters

Description

參考值

ASP.NET Applications

Request/Sec Request Executing

每秒執行的請求數。

如果Request/Sec ApplicationsRequest Executing 當前執行的請求數。的值比較小, 你

的Web 程序可能

是瓶頸

ASP.NET

ASP.NETRequestWait

Time

Request Executing Time

最近的請求在隊列中等待的毫秒數。執行最近的請求所用的毫秒數。Queued 在理想狀況下應該接近0, Request Queued 等候處理的請求數。該計數器應保持接近 0。超過 IIS 隊列長度會出如果這兩個值太大, 那麼需要重現「伺服器太忙」錯誤

6.6 SQL Server

這裡針對SQL Server2000, 而且只是列出比較關鍵的幾個。更加詳細的信息可以參考SQL Server 的聯機文檔。

Object(

Counters

Description

參考值

Processor

%Processor time

CPU 使用率

SQL Server: Logins/sec

這是每秒登錄到 SQL Server 的計數

SQLServer:CacheManage

Cache Hit Ratio

(all instances)

顯示在高速緩存中找到數據的命中率。如果數值持續小於 85%, 則表

示內存有問題。

SQL Server

General Statistics

User Connections

顯示當前 SQL 用戶數。與 Active Server Pages:Requests/Sec 計數器

進行比較, 可幫助了解腳本對 SQL Server 的影響程度。如果差別過大, 則表示測試腳本不能有效地對SQL Server 進行應力測試。

SQLServer:Locks

Lock Waits/sec

顯示在當前進程完成之前強制其他進程等待的每秒鎖定請求的數量。如果該值始終大於 0, 則表示事務有問題。

SQLServer: BuffeManage

Buffer Manager Hit Ratio

計數器值依應用程序而定, 但比率最好為 90% 或更高。增加內存直到這一數值持續高於 90%, 表示90% 以上的數據請求可以從數據緩衝區中獲得所需數據。

SQLServer

SQL Statistics

Batch Requests/sec

每秒收的Transact-SQL 命令批數。這一統計信息受所有約束( 如I/O、用戶數、高速緩存大小、請求I/O、用戶數、高速緩存大小、請求的複雜程度等) 影響。批請求數值

高意味著吞吐量很好。

SQL Server:

Buffer Manager

Lazy Writes/sec

每秒被緩衝區管理器的惰性寫入器寫入的緩衝區數。惰性寫入器是一

個系統進程, 其主要任務是刷新成批的老化的臟緩衝區( 指包含更改

的緩衝區, 這些更改必須寫回磁碟, 才能使該緩衝區由其它頁重新使

用), 並使之可由用戶進程使用。惰性寫入器消除了為創建可用緩衝區而頻繁執行檢查點的需要。

SQL Server:

Buffer Manager

Page Reads/sec

每秒發出的物理資料庫頁讀取數。這一統計信息顯示的是在所有數據

庫間的物理頁讀取總數。由於物理I/O 的開銷大, 可以通過使用更大

的數據高速緩存、智能索引、更高效的查詢或者改變資料庫設計等方法, 使開銷減到最小。

SQL

Server:Databases

Transactions/sec

每秒為資料庫啟動的事務數

這裡針對SQL Server2000, 而且只是列出比較關鍵的幾個。更加詳細的信息可以參考SQL

Server 的聯機文檔。

6.7 Network Delay

如果要監視的兩台計算機在同一個區域網絡內, 建議不要使用Network Delay Monitor。

因為在同一區域網內,Network Delay 會非常的小, 網路監視器會有足夠的時間在每秒鐘內發送成百上千的請求, 這樣會導致源計算機(source machine) 的CPU 和內存超負荷工作。

默認情況下「Enable display of network nodes by DNS names」 選擇是沒有選中的, 因為

選中它會明顯的降低該監視器的速度。

7 分析實時監視圖表

這一章僅僅介紹幾個最重要的圖表。

Q1 事務響應時間是否在可接受的時間內? 哪個事務用的時間最長?

看Transaction Response Time 圖, 可以判斷每個事務完成用的時間, 從而可以判斷出那個事務用的時間最長, 那些事務用的時間超出預定的可接受時間。

Q2 網路帶寬是否足夠?

「Throughput」圖顯示在場景運行期間的每一秒鐘, 從Web Server 上接受到的數據量的值。

拿這個值和網路帶寬比較, 可以確定目前的網路帶寬是否是瓶頸。

如果該圖的曲線隨著用戶數的增加, 沒有隨著增加, 而是呈比較平的直線, 說明目前的

網路速度不能夠滿足目前的系統流量。

Q3 硬體和操作系統能否處理高負載?

「Windows Resources」 圖實時地顯示了Web Server 系統資源的使用情況。利用該圖提供的數據, 可以把瓶頸定位到特定機器的某個部件。

8 經常遇到的問題

8.1 VuGen的問題

在使用VuGen 中經常會遇到的問題。

8.2 Controller的問題

在使用Controller 中經常會遇到的問題。

1. 在添加完Load Generators 機器時, 連接老是失敗; 添加的機器明明已經安裝了

loadrunner, 並且網路通訊正常。

解決方法: 在安裝loadrunner 的第七步驟, 應該選擇第2 項, 如果選擇了第一項,

就會有這種問題。重新安裝一下即可。

2. 在VuGen 中運行良好的腳本, 到Controller 中運行卻出問題。

這種問題可能會遇到。為了確定問題出在Controller 中的場景,而不是腳本的問題,

你應該在所有的Load Generators 機器上使用VuGen 運行測試腳本, 確保都能夠運

行正確。因為VuGen 和Controller 運行的機制不一樣。在VuGen 中運行時使用的

是完整的瀏覽器, 而在Controller 中運行時使用的只是瀏覽器的基本的部分。

8.3 計數器的問題

在使用性能計數器中經常會遇到的問題。

1. 添加了Windows Resources 計數器後, 卻看不到實時的數據。

解決方法: 要得到監視的數據, 必須要在被監視的伺服器(Web Server) 上獲得管

理員許可權。最簡單的方法是在「 網路鄰居」中以administrator 身份登陸Web Server。

當然使用下面的控制台命令也可以:net use < 機器名> 然後登陸用戶名和密碼即

可。(登陸的用戶名必須具有管理員許可權)

2. 添加了一些默認的性能計數器後, 出現了錯誤。

解決方法: 可能是一些LoadRunner 默認的計數器在WebServer 上已經不存在的原

因, 尤其是資料庫的計數器方面。簡單的解決方法, 就是刪除有問題的計數器, 添

加比較接近的計數器( 可能需要參考Windows 幫助或者資料庫的幫助)

9.結果分析

根據不同的場景設計,配置腳本後進行測試得到如下結果

測試環境

LMM:

CPU:4x2.7G RAM:4G

Websphere 5.0 + IBM Http Server

線程池:100

JDBC連接池:100

會話超時:30分鐘

DS:

CPU:4x2.2RAM:4G

Websphere 5.0 + IBM Http Server

線程池:100

JDBC連接池:100

會話超時:30分鐘

DB&LDAP:

CPU:2x2.2GRAM:4G

Oralce 8.1.7 + LDAP

測試工具:Load Runner 7.8

用戶數據:用戶名test1 – test100; 口令與用戶名相同。

測試用例1

測試場景描述

用戶登錄的lmm模塊,總共登陸24個用戶,所有用戶都同時並發操作。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在10%以下。LMM伺服器CPU利用率峰值為20%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為7秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶平均操作響應時間不超過5秒,所有交易成功。

測試用例2

測試場景描述

用戶登陸lmm模塊,總共登錄48個用戶,每1秒登錄1個用戶

用戶點擊「已登記教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習;

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在5%以下。LMM伺服器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為8%,其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶操作響應時間不超過3秒,所有交易成功。

測試用例3

測試場景描述

用戶登錄的lmm模塊,總共登陸48個用戶,所有用戶都同時並發操作。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在20%以下。LMM伺服器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為10秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶平均操作響應時間不超過10秒,所有交易成功。

測試用例4

測試場景描述

用戶登錄的lmm模塊,總共登陸48個用戶,每秒同時登錄10個用戶。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在10%以下。LMM伺服器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為2秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶平均操作響應時間不超過5秒,所有交易成功。

測試用例5

測試場景描述

用戶登錄的lmm模塊,總共登錄100個用戶,每1秒登錄一個用戶。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在20%以下。LMM伺服器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為2』20分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶最大操作響應時間30秒,所有交易成功。

測試用例6

測試場景描述

用戶登錄的lmm模塊,總共登陸100個用戶,所有用戶同時並發操作。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM與DS模塊CPU平均利用率在20%以下。LMM伺服器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為3分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶超時1個。

測試用例7

測試場景描述

用戶登錄的lmm模塊,總共登陸200個用戶,所有用戶同時並發操作。

用戶點擊「登記的教程」

用戶點擊「啟動」,進行課程學習,進入DS模塊

在DS模塊中進行學習,過程包括:首先,點擊一次課程結構樹;然後,進行課程內容的學習。

點擊「返回LMS」按鈕,返回到lmm模塊

點擊「退出」按鈕,退出系統

測試結果

LMM CPU平均利用率在20%以下。LMM伺服器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊「已登記教程」的學習課程查詢。DS伺服器CPU利用率峰值為100%(持續時間為5分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結構樹查詢。用戶超時108個。

10參考文獻

LoadRunner中文使用手冊(完全版)

LoadRunner 7.8 聯機幫助


作者:西邊人(軟體測試資源站作者)


推薦閱讀:

LoadRunner 使用虛擬IP測試流程配置

TAG:LoadRunner | 软件测试 | 性能测试 |