5.2 添加windows資源監(jiān)視窗口... 18
6.3 網(wǎng)絡(luò)吞吐量以及帶寬... 28
摘要:本文通過實例講解介紹了LoadRunner 工具的使用,介于公司的實際情況,文中主要是對工具的基本使用做了詳細描述,高級運用方面除性能計數(shù)器與參數(shù)設(shè)置外其它均未涉及,待以后補充。目的是使公司人員根據(jù)該手冊便可以獨立運用Loadrunner進行壓力測試
主題詞:Loadrunner 工具 壓力測試
LoadRunner 是一種預(yù)測系統(tǒng)行為和性能的工業(yè)標準級負載測試工具。通過以模擬上
千萬用戶實施并發(fā)負載及實時性能監(jiān)測的方式來確認和查找問題,LoadRunner 能夠?qū)φ麄€
企業(yè)架構(gòu)進行測試。通過使用LoadRunner , 企業(yè)能最大限度地縮短測試時間, 優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。目前企業(yè)的網(wǎng)絡(luò)應(yīng)用環(huán)境都必須支持大量用戶,網(wǎng)絡(luò)體系架構(gòu)中含各類應(yīng)用環(huán)境且由不同供應(yīng)商提供軟件和硬件產(chǎn)品。難以預(yù)知的用戶負載和愈來愈復(fù)雜的應(yīng)用環(huán)境使公司時時擔心會發(fā)生用戶響應(yīng)速度過慢, 系統(tǒng)崩潰等問題。這些都不可避免地導(dǎo)致公司收益的損失。Mercury Interactive 的 LoadRunner 能讓企業(yè)保護自己的收入來源, 無需購置額外硬件而最大限度地利用現(xiàn)有的IT 資源, 并確保終端用戶在應(yīng)用系統(tǒng)的各個環(huán)節(jié)中對其測試應(yīng)用的質(zhì)量, 可靠性和可擴展性都有良好的評價。LoadRunner 是一種適用于各種體系架構(gòu)的自動負載測試工具, 它能預(yù)測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。LoadRunner 的測試對象是整個企業(yè)的系統(tǒng), 它通過模擬實際用戶的操作行為和實行實時性能監(jiān)測, 來幫助您更快的查找和發(fā)現(xiàn)問題。此外,LoadRunner 能支持廣范的協(xié)議和技術(shù), 為您的特殊環(huán)境提供特殊的解決方案。
使用LoadRunner 完成測試一般分為四個步驟:
1)Vvitrual User Generator 創(chuàng)建腳本
2 創(chuàng)建腳本,選擇協(xié)議
2 錄制腳本
2 編輯腳本
2 檢查修改腳本是否有誤
2)中央控制器(Controller)來調(diào)度虛擬用戶
2 創(chuàng)建Scenario,選擇腳本
2 設(shè)置機器虛擬用戶數(shù)
2 設(shè)置Schedule
2 如果模擬多機測試,設(shè)置Ip Spoofer
3)運行腳本
2 分析scenario
4)分析測試結(jié)果
LoadRunner 分為Windows 版本和Unix 版本。如果我們的所有測試環(huán)境基于Windows
平臺, 那么我們只要安裝Windows 版本即可。本章講解的安裝過程就是LoadRunner7.8中文的Windows 版本的安裝。
目前部門的測試機和工作機器足可以滿足LoadRunner7.8 的最低要求。不過要比較好
的運行LoadRunner, 內(nèi)存最好在
LoadRunner7.8中文版安裝基本分兩個步驟:首先安裝LoadRunner7.8英文原版,然后安裝中文語言插件包
LoadRunner7.8英文原版存放位置:\\10.138.149.139\ test tools\LR7.8nt.rar將壓縮文件拷貝解壓到本機的安裝,過程比較簡單要開始安裝LoadRunner,以Administrator 的身份登陸Windows2000 后,運行LoadRunner 安裝目錄下Setup.exe 即可進入安裝程序。
1. 在“Registration Information” 界面中, 輸入序列號( 不用改動, 就是n 個8)
2. 在安裝類型界面中, 選擇一種安裝類型
下面簡單的對這三種安裝類型進行介紹
●Standalone Installation 將要安裝LoadRunner 在一臺計算機上
●Network Installation 把LoadRunner 安裝在一個網(wǎng)絡(luò)驅(qū)動器上, 這樣任何能連接到這個
網(wǎng)絡(luò)驅(qū)動器的計算機都可以使用LoadRunner 的部分或者全部組件。
●Network Installation and shortcuts 和Network Installation 類似,不同的只是這種類型將把
自己的計算機配置成Workstation 來運行LoadRunner。如果選擇了第二項, 我們還需要
進行2.3 的安裝來配置Workstation.??紤]到我們是自己學習研究學習, 選擇第一種安裝方法。
3. 在安裝方式界面中, 需要選擇一種安裝方式。建議選擇“ 自定義安裝”, 這樣所有的組件都會一次安裝。
下面簡單的對各個安裝方式進行介紹
●Typical Installation 安裝比較通用的組件, 包括Controller、Vuser、在線幫助和腳
該選項適合于控制Vusers 的機器。
●Load Generator 只安裝運行Vusers 產(chǎn)生負載的組件。該選項適合于只產(chǎn)生負載,
而不控制Vusers 的機器。
●MI Listener 安裝MI Listener 組件, 用來透過防火墻來運行Vusers 并且監(jiān)視性能。
●Custom Installation 自定義安裝, 我們將使用該選項, 安裝全部的組件。
4. 在“License Information” 中輸入License Key 后,Next, 繼續(xù)
100個用戶(無時間限制):AEAMAUIK-YAFEKEKJJKEEA-BCJGI
10000個用戶(有時間限制):AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
5. 如果是網(wǎng)絡(luò)安裝,最好把網(wǎng)絡(luò)驅(qū)動器映射成本機的一個盤符, 安裝LoadRunner 的各級目錄不要包含中文字符。
6. Next 后進入拷貝文件的界面
7. 拷貝文件完成后, 進入“User Login Settings” 界面。
●Allow virtual users to run on this machine without user login 需要在下面輸入域、用
戶名和密碼, 這樣運行Load Generator 的機器會自動登陸到網(wǎng)絡(luò),
●Manual log in to the Load Generator machine 運行Vusers 時, 自動登陸到網(wǎng)絡(luò),
無需登陸用戶名和密碼, 這樣Vusers 就會不用任何干預(yù)自動的啟動運行。推薦
選擇該項。這里選擇第一項和第二項都可以。
8. 重新啟動, 安裝完成
LoadRunner7.8英文原版存放位置:\\10.138.149.139\test tools\ LoadRunner7.8中文版.rar
將壓縮文件拷貝解壓到本機的安裝.。過程比較簡單要開始安裝以Administrator 的身份登陸Windows2000 后,(注意要退出已經(jīng)運行的英文原版)運行安裝目錄下Setup.exe 即可進入安裝程序,安裝過程中一切人機交流窗口多選擇默認“下一步”即可
注意:解壓文件存放的文件夾不可起中文名字,安裝目錄最好使用默認,如果更改則安裝目錄不要使用中文名!
“LMS網(wǎng)??荚嚻脚_”是一個典型的三層B/S架構(gòu)的MIS系統(tǒng)(客戶端/應(yīng)用服務(wù)器/數(shù)據(jù)庫管),中間層是業(yè)務(wù)邏輯層,應(yīng)用服務(wù)器處理所有的業(yè)務(wù)邏輯,但應(yīng)用服務(wù)器本身不提供負載均衡的能力,而是利用開發(fā)工具提供的ORB(對象請求代理)軟件保證多個應(yīng)用服務(wù)器間的負載均衡。本次測試的目的是:進行應(yīng)用服務(wù)器的壓力測試,找出應(yīng)用服務(wù)器能夠支持的最大客戶端數(shù)。方法是:按照正常業(yè)務(wù)壓力估算值的1~10倍進行測試,考察應(yīng)用服務(wù)器的運行情況。
場景描述一: |
1. 用戶登錄的lmm模塊,總共登陸24個用戶,所有用戶都同時并發(fā)操作。
2. 用戶點擊“登記的教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
5. 點擊“返回LMS” 按鈕,返回到lmm模塊,點擊“退出”按鈕,退出系統(tǒng)
場景描述二: |
1. 用戶登陸lmm模塊,總共登錄48個用戶,每1秒登錄1個用戶
2. 用戶點擊“已登記教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習;
5. 點擊“返回LMS” 按鈕,返回到lmm模塊,點擊“退出”按鈕,退出系統(tǒng)
場景描述三: |
1. 用戶登錄的lmm模塊,總共登陸48個用戶,所有用戶都同時并發(fā)操作。
2. 用戶點擊“登記的教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
5. 點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
場景描述四: |
1. 用戶登錄的lmm模塊,總共登陸48個用戶,每秒同時登錄10個用戶。
2. 用戶點擊“登記的教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
5. 點擊“返回LMS” 按鈕,返回到lmm模塊,點擊“退出”按鈕,退出系統(tǒng)
場景描述五: |
1. 用戶登錄的lmm模塊,總共登陸100個用戶,所有用戶同時并發(fā)操作。
2. 用戶點擊“登記的教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
5. 點擊“返回LMS” 按鈕,返回到lmm模塊
場景描述六: |
1. 用戶登錄的lmm模塊,總共登陸200個用戶,所有用戶同時并發(fā)操作
2. 用戶點擊“登記的教程”
3. 用戶點擊“啟動”,進行課程學習,進入DS模塊
4. 在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
5. 點擊“返回LMS” 按鈕,返回到lmm模塊,點擊“退出”按鈕,退出系統(tǒng)
場景描述七: |
1. 戶登錄的lmm模塊,總共登陸24個用戶。所有用戶都同時并發(fā)操作
2. 所有用戶都同時并發(fā)操作,戶點擊“登記的教程”中“test”課件
使用自發(fā)測試工具,目的測試24個用戶同時打開課件時服務(wù)器性能
場景描述八: |
1. 登錄的lmm模塊,總共登陸60個用戶。所有用戶都同時并發(fā)操作
2. 有用戶都同時并發(fā)操作,戶點擊“登記的教程”中“test”課件
使用自發(fā)測試工具,目的測試60個用戶同時打開課件時服務(wù)器性能
創(chuàng)建用戶腳本需要用到VuGen。提示: 運行VuGen 最好在1024*768 的分辨率下, 否則有些工具欄會看不到。
啟動Visual User Generator 后, 通過菜單新建一個用戶腳本, 選擇系統(tǒng)通訊的協(xié)議。
這里我們需要測試的是Web 應(yīng)用,同時考慮到后臺SQL數(shù)據(jù)庫所以我們需要選擇Web(HTTP/HTML)協(xié)議+SQL SERVER協(xié)議,確定后, 進入主窗體。通過菜單來啟動錄制腳本的命令。
●在URL 中添入要測試的Web 站點地址..。
●測試http://lms.ah.sp.com.cn/lms-lmm/loginForm.do選擇要把錄制的腳本放到哪一個部分, 默認情況下是“Action”。
這里簡單說明一下:VuGen 中的腳本分為三部分:vuser_init、vuser_end 和Action。其
中vuser_init 和vuser_end 都只能存在一個, 不能再分割, 而Action 還可以分成無數(shù)多個部分( 通過點擊New 按鈕, 新建ActionXXX)。在錄制需要登陸的系統(tǒng)時, 我們把登陸部分放到vuser_init 中, 把登陸后的操作部分放到Action 中, 把注銷關(guān)閉登陸部分放到vuser_end 中。( 如果需要在登陸操作設(shè)集合點, 那么登陸操作也要放到Action 中, 因為vuser_init 中不能添加集合點) 在其他情況下, 我們只要把操作部分放到Action 中即可。注意: 在重復(fù)執(zhí)行測試腳本時,vuser_init 和vuser_end 中的內(nèi)容只會執(zhí)行一次, 重復(fù)執(zhí)行的只是Action 中的部分。
●點“ 選項 ”按鈕, 進入錄制的設(shè)置窗體, 這里一般情況下不需要改動。
●然后點“OK” 后,VuGen 開始錄制腳本。在錄制過程中, 不要使用瀏覽器的“ 后退” 功能,LoadRunner 支持不太好! 錄制過程中, 在屏幕上會有一個工具條出現(xiàn)。錄制的過程和WinRunner 有些類似, 不再多介紹。錄制完成后, 按下“ 結(jié)束錄制” 按鈕,VuGen 自動生成用戶腳本, 退出錄制過程。
當錄制完一個基本的用戶腳本后, 在正式使用前我們還需要完善測試腳本, 增強腳本的
靈活性。一般情況下, 我們通過以下幾種方法來完善測試腳本。插入事務(wù)、插入結(jié)合點、插入注解、參數(shù)化輸入。這里只舉例介紹參數(shù)化如何設(shè)置,其它只作簡單介紹。
事務(wù)(Transaction): 為了衡量服務(wù)器的性能, 我們需要定義事務(wù)。比如: 我們在腳本
中有一個數(shù)據(jù)查詢操作, 為了衡量服務(wù)器執(zhí)行查詢操作的性能, 我們把這個操作定義為一個事務(wù), 這樣在運行測試腳本時,LoadRunner 運行到該事務(wù)的開始點時,LoadRunner 就會開始計時, 直到運行到該事務(wù)的結(jié)束點, 計時結(jié)束。這個事務(wù)的運行時間在結(jié)果中會有反映。
插入事務(wù)操作可以在錄制過程中進行, 也可以在錄制結(jié)束后進行。LoadRunner 運行在
腳本中插入不限數(shù)量的事務(wù)。
具體的操作方法如下: 在需要定義事務(wù)的操作前面, 通過菜單或者工具欄插入。輸入該事務(wù)的名稱。注意: 事務(wù)的名稱最好要有意義, 能夠清楚的說明該事務(wù)完成的動作。插入事務(wù)的開始點后, 下面需要在需要定義事務(wù)的操作后面插入事務(wù)的“ 結(jié)束點”。同樣可以通過菜單或者工具欄插入。默認情況下, 事務(wù)的名稱列出最近的一個事務(wù)名稱。一般情況下, 事務(wù)名稱不用修改。事務(wù)的狀態(tài)默認情況下是LR_AUTO。一般情況下, 我們也不需要修改, 除非在手工編寫代碼時, 有可能需要手動設(shè)置事務(wù)的狀態(tài)。
插入集合點是為了衡量在加重負載的情況下服務(wù)器的性能情況。在測試計劃中, 可能會
要求系統(tǒng)能夠承受1000 人同時提交數(shù)據(jù),在LoadRunner 中可以通過在提交數(shù)據(jù)操作前面加入集合點, 這樣當虛擬用戶運行到提交數(shù)據(jù)的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點,如果不到1000 人,LoadRunner 就會命令已經(jīng)到集合點的用戶在此等待, 當在集合點等待的用戶達到1000 人時,LoadRunner 命令1000 人同時去提交數(shù)據(jù), 從而達到測試計劃中的需求。
注意: 集合點經(jīng)常和事務(wù)結(jié)合起來使用。集合點只能插入到Action 部分,vuser_init 和vuser_end 中不能插入集合點。具體的操作方法如下: 在需要插入集合點的前面, 通過菜單或者工具欄操作輸入該集合點的名稱。注意: 集合點的名稱最好要有意義, 能夠清楚的說明該集合點完成的動作。
注釋的作用就不多說了, 不過插入注釋最好是在錄制過程中。具體的操作方法如下: 在需要插入注釋的前面, 通過菜單或者工具欄操作
如果用戶在錄制腳本過程中, 填寫提交了一些數(shù)據(jù), 比如要增加數(shù)據(jù)庫記錄。這些操作
都被記錄到了腳本中。當多個虛擬用戶運行腳本時, 都會提交相同的記錄, 這樣不符合實際的運行情況, 而且有可能引起沖突。為了更加真實的模擬實際環(huán)境, 需要各種各樣的輸入。參數(shù)化輸入是一種不錯的方法。
用參數(shù)表示用戶的腳本有兩個優(yōu)點:
① 可以使腳本的長度變短。
② 可以使用不同的數(shù)值來測試你的腳本。例如, 如果你企圖搜索不同名稱的圖書, 你
僅僅需要寫提交函數(shù)一次。在回放的過程中, 你可以使用不同的參數(shù)值, 而不只搜索一
個特定名稱的值。
參數(shù)化包含以下兩項任務(wù):
① 在腳本中用參數(shù)取代常量值。
② 設(shè)置參數(shù)的屬性以及數(shù)據(jù)源。
參數(shù)化僅可以用于一個函數(shù)中的參量。你不能用參數(shù)表示非函數(shù)參數(shù)的字符串。
另外, 不是所有的函數(shù)都可以參數(shù)化的。
參數(shù)化輸入的講解, 我們采用一個例子的方式來進行。
在本例中我們參數(shù)化用戶的登陸名:
先看如下腳本,通過腳本錄制找到用戶登陸部分,如圖
框選住登陸名,點鼠標右鍵,彈出對話框,選擇“替換為新參數(shù)”彈出對話框
參數(shù)名隨意取,建議取通俗易懂的名字,下面我們重點介紹一下參數(shù)的類型。
●DateTime: 很簡單, 在需要輸入日期/時間的地方, 可以用DateTime 類型來替代。
其屬性設(shè)置也很簡單, 選擇一種格式即可。當然也可以定制格式。
.●Group Name:暫時不知道何處能用到,但設(shè)置比較簡單。在實際運行中,LoadRunner
使用該虛擬用戶所在的Vuser Group 來代替。但是在VuGen 中運行時,Group Name
將會是None
.●Load Generator Name: 在實際運行中,LoadRunner 使用該虛擬用戶所在Load Generator 的機器名來代替。
.●Iteration Number: 在實際運行中,LoadRunner 使用該測試腳本當前循環(huán)的次數(shù)來
代替。
.●Random Number: 隨機數(shù)。很簡單。在屬性設(shè)置中可以設(shè)置產(chǎn)生隨機數(shù)的范圍
.●Unique Number:唯一的數(shù)。在屬性設(shè)置中可以設(shè)置第一個數(shù)以及遞增的數(shù)的大小。
注意: 使用該參數(shù)類型必須注意可以接受的最大數(shù)。例如: 某個文本框能接受的
最大數(shù)為99。當使用該參數(shù)類型時, 設(shè)置第一個數(shù)為1, 遞增的數(shù)為1, 但100 個
虛擬用戶同時運行時,第100 個虛擬用戶輸入的將是100,這樣腳本運行將會出錯。
注意: 這里說的遞增意思是各個用戶取第一個值的遞增數(shù), 每個用戶相鄰的兩次循
環(huán)之間的差值為1。舉例說明: 假如起始數(shù)為1, 遞增為5, 那么第一個用戶第一
次循環(huán)取值1, 第二次循環(huán)取值2; 第二個用戶第一次循環(huán)取值為6, 第二次為7;
依次類推。
●Vuser ID: 設(shè)置比較簡單。在實際運行中,LoadRunner 使用該虛擬用戶的ID 來代
替,該ID 是由Controller 來控制的。但是在VuGen 中運行時,Vuser ID 將會是–1。
File: 需要在屬性設(shè)置中編輯文件,添加內(nèi)容,也可以從現(xiàn)成的數(shù)據(jù)庫中取數(shù)據(jù)( 下
面我們將會介紹)
●User Defined Function: 從用戶開發(fā)的dll 文件提取數(shù)據(jù)。就目前我認為, 這種方式
沒有必要。VuGen 支持C 語言的語法,在VuGen 中重新編寫類似的函數(shù)應(yīng)該不難。
上面的例子中, 我們?nèi)‰S機數(shù)即可。點“Properties… ..” 按鈕, 進行屬性設(shè)置窗口
添入隨機數(shù)的取值范圍為(1-50), 選擇一種數(shù)據(jù)格式。在“屬性” 中有以下幾個選項:
◆Each Occurrence:在運行時, 每遇到一次該參數(shù), 便會取一個新的值
◆Each iteration:運行時, 在每一次循環(huán)中都取相同的值
◆Once:運行時, 在每次循環(huán)中, 該參數(shù)只取一次值
這里我們用的是隨機數(shù), 選擇Each Occurrence 非常合適。
下面我們再介紹用數(shù)據(jù)庫中的用戶名來參數(shù)化登陸用戶名。
框選住登陸名,點鼠標右鍵,彈出對話框,選擇“替換為新參數(shù)”彈出對話框,此時參數(shù)名輸入:name,參數(shù)類型選擇File,如圖
點“屬性”按鈕, 出現(xiàn)以下窗口
注意: 參數(shù)的文件名不要使用con.dat、pm.dat 或者lpt*.dat 等系統(tǒng)裝置名。下面我們將會連接數(shù)據(jù)庫, 從數(shù)據(jù)表中選擇用戶名。點“數(shù)據(jù)向?qū)А?font face="Times New Roman"> 按鈕,顯示如圖
[徐濤3] 使用第2 項, 選擇“使用手動指定SQL語句”點下一步,出現(xiàn)如圖窗口
添入連接字符串, 點“創(chuàng)建” 按鈕,選擇事先配置好的ODBC連接。在SQL語句里輸入select查詢語句,出現(xiàn)如圖窗口
從哪一行開始取值 |
按列名稱取值 |
提醒: 在參數(shù)數(shù)據(jù)顯示區(qū), 最多只能看到100 行, 如果數(shù)據(jù)超過100 行, 只能點“編輯” 按鈕, 進入記事本看。
“選擇下一行 ” 有以下幾種選擇:
●Sequential: 按照順序一行行的讀取。每一個虛擬用戶都會按照相同的順序讀取
●Random: 在每次循環(huán)里隨機的讀取一個, 但是在循環(huán)中一直保持不變
●Unique : 唯一的數(shù)。注意: 使用該類型必須注意數(shù)據(jù)表有足夠多的數(shù)。比如Controller 中設(shè)定20 個虛擬用戶進行5 次循環(huán), 那么編號為1 的虛擬用戶取前5 個數(shù), 編號為2 的虛擬用戶取6-10 的數(shù), 依次類推, 這樣數(shù)據(jù)表中至少要有100 個數(shù)據(jù), 否則Controller 運行過程中會返回一個錯誤。
“按編號”指選擇列表中的那一列數(shù)據(jù),從左到右分別是1、2、3依次
通常用在有關(guān)聯(lián)性的數(shù)據(jù)上面。我們這里取值Sequential 即可。完成設(shè)置關(guān)閉即可
經(jīng)過以上的各個步驟后, 腳本就可以運行了。運行腳本可以通過菜單或者工具欄來操作。
執(zhí)行“ 運行” 命令后,VuGen 先編譯腳本, 檢查是否有語法等錯誤。如果有錯誤,VuGen
將會提示錯誤。雙擊錯誤提示,VuGen 能夠定位到出現(xiàn)錯誤的那一行。為了驗證腳本的正
確性, 我們還可以調(diào)試腳本, 比如在腳本中加斷點等, 操作和在VC 中完全一樣, 相信大家誰都不會感到陌生。如果編譯通過, 就會開始運行。然后會出現(xiàn)運行結(jié)果。
啟用“controller”彈出如圖窗口
修改數(shù)量 |
選擇剛才錄制并保存好的腳本,添加到方案中,點“確定”出現(xiàn)如圖
根據(jù)需要修改虛擬用戶數(shù)量,這里我們?nèi) ?font face="Times New Roman">100”根據(jù)實現(xiàn)場景設(shè)計,取不同數(shù)字
點“編輯計劃”細化方案,計劃名里選擇計劃種類:加壓,緩慢加壓、默認計劃或新建立計劃。
2 默認計劃:同時加載所有vuser,直到完成
2 加壓:每15秒啟動2個vuser 持續(xù)時間5分種
2 緩慢加壓::每2分種啟動2個vuser 持續(xù)時間10分種
這里我們選擇“加壓” 出現(xiàn)如圖
單位秒內(nèi)同時加載幾個vuser |
點“加壓”標簽設(shè)置加壓方法,點“持續(xù)時間”標簽選擇完成時間,點“加壓”標簽選擇退出方法,點“方案開始時間”可以定義時間后自動到點執(zhí)行,并在一個限定的時間范圍內(nèi)結(jié)束,所有設(shè)置完畢后,點“ok”返回上一級窗口,點“開始方案”啟動運行,出現(xiàn)如圖窗口
Windows資源監(jiān)視窗口 |
打開可用圖中目錄樹,選擇系統(tǒng)資源找到windows資源 |
loadruner默認性能監(jiān)視窗口四個,分別是“運行vuser“、”事務(wù)響應(yīng)時間“、
“每秒點擊次數(shù)”最后一個可以根據(jù)用戶自己選擇現(xiàn)實什么窗口。打開可用圖中目錄樹,
選擇系統(tǒng)資源,找到windows資源雙擊,則windows資源監(jiān)視窗口便自動替換原窗口如上圖。當然loadrunner也可以同時顯示1-16個窗口,方法是點右鍵,在彈出菜單中選擇“查看圖”選擇顯示的圖數(shù),也可以自定義數(shù)字。
鼠標選擇windows資源監(jiān)視窗口,點擊右鍵彈出菜單中選擇“ADD Measurements..”彈出如圖窗口
點“添加”把監(jiān)視的服務(wù)器ip地址輸入,點確定,如圖
如果可以正常聯(lián)機到服務(wù)器,則在資源度量中會顯示全部計數(shù)器,此時如果點“確定”則系統(tǒng)默認全部選中,在監(jiān)視窗口中會顯示所有性能曲線,無法單獨過濾顯示某條曲線,如果選中某個計數(shù)器后點“添加”則彈出該項目下的其它性能指標,選擇需要的計數(shù)器后點“添加”如圖
此時要注意,你登陸客戶端(也就是你裝有loadrunner機器)的用戶應(yīng)該是管理員身份,同時還要保證該用戶在被監(jiān)視的服務(wù)器上也是管理員身份。這樣選擇雖然監(jiān)視窗口中仍會顯示所有性能曲線,但是可以通過鼠標右鍵彈出菜單,選中你指定的某條曲線單獨顯示。方法是雙擊監(jiān)視窗口放大顯示,然后右鍵選擇“僅顯示指定圖”監(jiān)視窗口還可以互相疊加等操作,功能強大,通過右鍵菜單選擇可以進行復(fù)雜顯示操作。常用的還有web程序服務(wù)器圖、數(shù)據(jù)庫服務(wù)器資源圖等,添加方法雷同。計數(shù)器有那些,有什么含義,理想值是多少,可以參見第六章節(jié)。
此時設(shè)置完畢后,那就簡單了,點擊“開始方案”注意觀察吧。
點一下,ok! |
腳本執(zhí)行完畢后,loadrunner會自動分析結(jié)果,生成分析結(jié)果圖或表,方法是點導(dǎo)航欄“結(jié)果”選現(xiàn),在彈出窗口中選擇“分析結(jié)果”
在運行過程中, 可以監(jiān)視各個服務(wù)器的運行情況(DataBase Server、Web Server 等)。
監(jiān)視場景通過添加性能計數(shù)器來實現(xiàn)。這一章非常的重要, 確定系統(tǒng)瓶頸全靠它了。
下面重點講講需要添加那些計數(shù)器, 以及那些計數(shù)器代表什么意思。由于Win2000 Professional、Server 以及Advanced Server 提供的計數(shù)器不完全相同, 這里我們討論將以Server 為基準。監(jiān)視場景需要在Run 視圖中設(shè)置,然后出現(xiàn)添加計數(shù)器的對話框其他的操作就和控制面板“ 性能” 中添加性能計數(shù)器的操作一樣, 這里不再詳細說明。本章主要說明一下各個系統(tǒng)計數(shù)器的含義( 數(shù)據(jù)庫的計數(shù)器不做重點, 只是拿SQL Server2000 作為例子進行說明。因為數(shù)據(jù)庫各個版本之間差異比較大, 請參考您使用的數(shù)據(jù)庫系統(tǒng)的幫助)。
內(nèi)存是第一個監(jiān)視對象, 確定系統(tǒng)瓶頸的第一個步驟就是排除內(nèi)存問題。內(nèi)存短缺的問題可能會引起各種各樣的問題。
Object( 對象) | Counters | Description( 描述) | 參考值 |
Memory | Available MBytes | 物理內(nèi)存的可用數(shù)( 單位 Mbytes)。默認情況下IIS5.0 使用50%的可用物理內(nèi)存, 作為IIS 的文件緩存(file cache)。IIS 基本占用 2.5 MB,每個附加連接將在此基礎(chǔ)上占用 10 KB 左右 | 至少要有10% 的物理 |
Memory | Page/sec Page Faults/sec Pages Input/sec Pages Input/sec Page Reads/sec Transition Faults/sec
| 物理內(nèi)存的可用數(shù)( 單位 Mbytes)。默認情況下IIS5.0 使用50%的可用物理內(nèi)存, 作為IIS 的文件緩存(file cache)。IIS 基本占用 2.5 MB,每個附加連接將在此基礎(chǔ)上占用 10 KB 左右。至少要有10% 的物理內(nèi)存值當處理器向內(nèi)存指定的位置請求一頁( 可能是數(shù)據(jù)或代碼) 出現(xiàn)錯誤時, 這就構(gòu)成一個Page Fault。如果該頁在內(nèi)存的其他位置, 該錯誤被稱為軟錯誤( 用Transition Fault/sec 數(shù)器衡量); 如果該頁必須從硬盤上重新讀取時, 被稱為硬錯誤。許多處理器可以在有大軟錯誤的情況下繼續(xù)操作。但是, 硬錯誤可以導(dǎo)致明顯的拖延。Page Faults/sec 是處理器每秒鐘處理的錯誤頁( 包括軟錯誤和硬錯誤)。Pages Input/sec 是為了解決硬錯誤頁, 從硬盤上讀取的頁數(shù), 而Page Reads/sec 是為了解決硬錯誤, 從硬盤讀取的次數(shù)。如果 Page Reads/Sec 比率持續(xù)保持為 5, 表示可能內(nèi)存不足。Pages/sec 是指為解析硬頁錯誤從磁盤 讀取或?qū)懭氪疟P的頁數(shù)。 | Page/sec 推薦00-20( 如果服務(wù)器沒有足夠的內(nèi)存處理其工作負荷, 此數(shù)值將一直很高。如果大于80,表示有問題)。這些計數(shù)器的值比較低, 說明Web服務(wù)器響應(yīng)請求比較快, 否則可能是服務(wù)器系統(tǒng)內(nèi)存短缺引起( 也可能是緩存太大, 導(dǎo)致系統(tǒng)內(nèi)存太少)。Page Input/sec 的值可以衡量出硬錯誤頁發(fā)生的速率, 通常它的值會于或者等于Page Reads/sec。Memory Cache Bytes |
Memory | Cache Bytes | 文件系統(tǒng)緩存(File System Cache) | 默默認情況下認情況下為50%的可用物理內(nèi)存。如為50%的可IIS5.0 運行內(nèi)存不夠時, 它會自動整理用物理內(nèi)存緩存。需要關(guān)注該計數(shù)器的趨勢變化 |
Internet File Cache Hits % |
| File Cache Hits %是文件緩存命中全部( 對于一個Information File Cache 緩存需求的比例, 反映了IIS 的文件緩大部分是靜Services Flushes 存設(shè)置的工作情況。而File Cache Hits 態(tài)網(wǎng)頁組成 Global File Cache Hits 是文件緩存命中的具體值,File Cache 的網(wǎng)站)File Flushes 是自服務(wù)器啟動之后文件緩存Cache Hits% 刷新次數(shù), 如果刷新太慢, 會浪費內(nèi)存; 如果刷新太快, 緩存中的對象會太頻繁屬于非常好! 的丟棄生成, 起不到緩存的作用。通過File Cache Hits 和File Cache Flushes 可以得到一個適當?shù)乃⑿轮担?font face="Times New Roman"> 參考IIS 的設(shè)置ObjectTTL 、MemCacheSize 、MaxCacheFileSize) |
|
|
|
|
|
Memory | PoolPaged BytesPool Nonpaged Bytes | Pool Paged Bytes Pool Nonpaged Bytes 這兩個計數(shù)器監(jiān)視服務(wù)器上各個進程的分頁池字節(jié)數(shù)和非分頁池字節(jié)數(shù)。 | 在訪問數(shù)比較固定的情況下, Pool Nonpaged Bytes 是比較定的, 如果訪問數(shù)逐步增加, 該值會緩慢的增加 |
Process | Virtual Bytes Working Set 計數(shù)器 | Virtual Bytes( 實Virtual Bytes 數(shù)器監(jiān)視IIS5.0 保留的例inetinfo 、虛地址空間的數(shù)量, 實例化為inetinfo dllhost) Working Set( 實例進程(IIS 運行的核心)和Dllhost 進程( 隔離/ 連接池的應(yīng)用程序必需的)。inetinfo 、dllhost) Working Set 計數(shù)器反映了每個進程使Dllhost#n 進程都用的內(nèi)存頁的數(shù)量。系統(tǒng)的內(nèi)存頁(pool 要添加計數(shù)器Page) 只能由操作系統(tǒng)的核心模塊直接訪問, 用戶進程不能訪問。運行IIS5.0 的服務(wù)器上, 負責web 連接的線程以及它需要的一些對象都保存在未分頁的池中(nonpaged pool), 比如文件句柄和socket 連接 |
|
Process | Private Bytes | 指這個處理不能與其他處理共享的、已分配的當前字節(jié)數(shù) |
|
Memory | Committed Bytes | 是指以字節(jié)表示的確認虛擬內(nèi)存。(確認內(nèi)存是指為磁盤分 頁文件在磁盤上保留的空間以便在需推薦不超過物理內(nèi)存的75% 要將其寫回磁盤時使用) | 推薦部超過物理內(nèi)存的75% |
|
|
|
|
內(nèi)存問題主要檢查應(yīng)用程序是否存在內(nèi)存泄漏。如果發(fā)生了內(nèi)存泄漏,Process\Private Bytes 計數(shù)器和Process\Working Set 計數(shù)器的值往往會升高, 同時Available Bytes 的值會降低。內(nèi)存泄漏應(yīng)該通過一個長時間的, 用來研究分析當所有內(nèi)存都耗盡時, 應(yīng)用程序反應(yīng)情況的測試來檢驗。
Object( 對象) | Counters | Description( 描述) | 參考值 |
Sytem | Processor Queue Length
| Processor Queue Length 是指處理列隊中的線程數(shù)。即使在有多個處理器的計算機上處理器時間也會有一個單列隊。不象磁盤計數(shù)器, 這個計數(shù)器僅計數(shù)就緒的線程, 而不計數(shù)運行中的線程。如果處理器列隊中總是有兩個以上的線程通常表示處理器堵塞 | 小于2。顯示在由 Web 服務(wù)器所有處理器共享的隊列中等待執(zhí)行的線程數(shù)。處理器瓶頸會導(dǎo)致該值持續(xù)大于2 |
Processor | %Processor Time | CPU 使用率。這是查看處理器飽和狀況的最佳計數(shù)器。顯示所有 CPU 的線程處理時間。如果一個或多個處理器的該數(shù)值持續(xù)超過 90%,則表示此測試的負 載對于目前的硬件過于沉重。為多處理器服務(wù)器添加該計數(shù)器的 0 到 x 個實例 | 小于75%。排除內(nèi)存因素, 如果該計數(shù)器的值比較大, 而同時網(wǎng)卡和硬盤的值比較低, 那么可以定CPU 瓶頸 |
System | Context Switches/sec | Context Switches/sec 指計算機上的所有處理器全都從一個線程轉(zhuǎn)換到另一個線程的綜合速率。當正在運行的線程自動放棄處理器時出現(xiàn)上下文轉(zhuǎn)換, 由一個有更高優(yōu)先就緒的線程占先或在用戶模式和特權(quán)(內(nèi)核)模式之間轉(zhuǎn)換以使用執(zhí)行或分系統(tǒng)服務(wù)。它是在計算機上的所有處理器上運行的所有線程的Thread: Context Switches/sec 的總數(shù)并且用轉(zhuǎn)換數(shù)量衡量。在系統(tǒng)和線程對象上有上下文轉(zhuǎn)換計數(shù)器 | 如果切換次數(shù)到5000*CPU個數(shù)和10000*CPU 個數(shù)中, 說明它忙于切換線程而不是 處理ASP 腳本 |
Processo | %Privileged Time | % Privileged Time 是在特權(quán)模式下處理線程執(zhí)行代碼所花時間的百分比。當調(diào)用 Windows 系統(tǒng)服務(wù)時, 此服務(wù)經(jīng)常在特權(quán)模式運行, 以便獲取對系統(tǒng)專有數(shù)據(jù)的訪問。在用戶模式執(zhí)行的線程無法訪問這些數(shù)據(jù)。對系統(tǒng)的調(diào)用可以是直接的(explicit)或間接的(implicit), 例如頁面錯誤或中斷。不像某些早期的操作系統(tǒng),Windows 除了使用用戶和特權(quán)模式的傳統(tǒng)保護模式之外, 還使用處理邊界作為分系統(tǒng)保護。某些由Windows 為您的應(yīng)用程序所做的操作除了出現(xiàn)在處理的特權(quán)時間內(nèi), 還可能在其他子系統(tǒng)處理出現(xiàn) |
|
Time | Switches/sec ( 實例化inetinfo 和dllhost | 如果你決定要增加線程字節(jié)池的大小,你應(yīng)該監(jiān)視這三個計數(shù)器( 包括上面的一個)。增加線數(shù)可能會增加上下文切換次數(shù), 這樣性能不會上升反而會下降。如果十個實例的上下文切換值非常高, 就應(yīng)該減小線程字節(jié)池的大小 |
|
Processor | Interrupts/sec %DPC Time | Time 這兩個計數(shù)器能夠反映處理器用在處理中斷以及推遲處理調(diào)用的時間。如果處理器使用率超過Interrupts/sec 指處理器每秒鐘接收并維90% 且 硬件中斷的平均值。正常的線程操作在中斷時懸停。大多數(shù)的系統(tǒng)時鐘每Interrupt Time 大于隔 10 毫秒中斷處理器一次, 形成了間15%, 則處理隔活動的后臺 | 如果處理器使用率超過90%,且Interrupts/sec time大于15%則處理器可能負載過重,并發(fā)生中斷 |
Processor Interrupts/sec %DPC Time 這兩個計數(shù)器能夠反映處理器用在處理中斷以及推遲處理調(diào)用的時間。如果處理器使用率超過Interrupts/sec 指處理器每秒鐘接收并維90% 且 硬件中斷的平均值。正常的線程操作在中斷時懸停。大多數(shù)的系統(tǒng)時鐘每Interrupt Time 大于隔 10 毫秒中斷處理器一次, 形成了間15%, 則處理隔活動的后臺。器可能負荷過重, 并發(fā)生中斷。判斷應(yīng)用程序是否存在處理器瓶頸的方法: 如果Processor Queue Length 顯示的隊列長度保持不變(>=2) 個并且處理器的利用率%Processor Time 超過90%, 那么很有可能存在處理器瓶頸。
如果發(fā)現(xiàn)Processor Queue Length 顯示的隊列長度超過2, 而處理器的利用率卻一直很
低, 那么或許更應(yīng)該去解決處理器阻塞問題, 這里處理器一般不是瓶頸。如果系統(tǒng)由于應(yīng)用程序代碼效率低下或者系統(tǒng)結(jié)構(gòu)設(shè)計有缺陷而導(dǎo)致大量的上下文切換(Context Switches/sec 顯示的上下文切換次數(shù)比較大), 那么就會占用大量的系統(tǒng)資源。如果系統(tǒng)的吞吐量降低并且CPU 的使用率很高,并且此現(xiàn)象發(fā)生時切換水平在15000 以上, 那么意味著上下文切換次數(shù)過高同時還可以比較Context Switches/sec 和%Privileged Time 來判斷上下文切換是否過量。如果后者的值超過40%, 且上下文切換的速率也很高, 那么應(yīng)該檢查為什么會產(chǎn)生這樣高的上下文切換。
Object | Counter | Description | 參考值 |
Network Interface | Bytes Total/se | Bytes Total/sec 為發(fā)送和接收字節(jié)的速率, 包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速該計數(shù)器的值和目前網(wǎng)度是否是瓶頸, 可以用該計數(shù)器的值和絡(luò)的帶寬相目前網(wǎng)絡(luò)的帶寬比較 | 改計數(shù)器的值和目前網(wǎng)絡(luò)帶寬相除,結(jié)果應(yīng)該小于50% |
Web Servic | Maximum Maximum Connections | Maximum Maximum Connections :“ 最大連接數(shù)” Attempts Total Connection Attempts :“ 連接嘗試總數(shù)” 是從服務(wù)啟動時利用 Web 服務(wù)嘗試連接的總數(shù)。該計數(shù)器應(yīng)用于全部所列的實例。
|
|
Object( 對象) Counters( 計數(shù)器名稱) Description( 描述) 參考值
Object | Counters | Description | 參考值 |
Network | Bytes Total/sec | Bytes Total/sec 為發(fā)送和接收字節(jié)的速Interface 率, 包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸, 可以用該計數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較
|
|
Processo | %Processor Time % Privileged Time | CPU 使用率該計數(shù)器對應(yīng)于處理器執(zhí)行Windows. 2000 內(nèi)核命令( 如處理SQL Server I/O 請求) 所用時間的百分比。如果 Physical Disk 計數(shù)器的值很高時該計數(shù)器的值也一直很高, 則考慮使用速度更快或效率更高的磁盤子系統(tǒng)。
|
|
PhysicalDisk | %Disk Time | % Disk Time 指所選磁盤驅(qū)動器忙于為讀或?qū)懭胝埱筇峁┓?wù)所用的時間的百分比。如果三個計數(shù)器都比較大, 那 么硬盤不是瓶頸。如果只有%Disk Time 比較大, 另外兩個都比較適中, 硬盤可能會是瓶頸。在記錄該計數(shù)器之前, 請 在 Windows 2000 的命令行窗口中運行 diskperf -yD 。若數(shù)值持續(xù)超過 80%, 則可能內(nèi)存泄漏。 |
|
PhysicalDisk | AverageDisk Queue Length | 指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數(shù)。
|
|
PhysicalDisk | PhysicalDisk | 指在此盤上讀取操作的速率 |
|
PhysicalDisk | Disk Writes/sec | 指在此盤上寫入操作的速率 |
|
判斷磁盤瓶頸的方法是通過以下公式來計算:
每磁盤的I/O 數(shù) = [讀次數(shù) + (4 * 寫次數(shù))] / 磁盤個數(shù)
如果計算出的每磁盤的I/O 數(shù)大于磁盤的處理能力, 那么磁盤存在瓶頸。
這里以ASP.NET 開發(fā)的Web 應(yīng)用程序為例進行說明。
Object | Counters | Description | 參考值 |
ASP.NET Applications | Request/Sec Request Executing | 每秒執(zhí)行的請求數(shù)。 | 如果Request/Sec ApplicationsRequest Executing 當前執(zhí)行的請求數(shù)。的值比較小, 你 的Web 程序可能 是瓶頸
|
ASP.NET | ASP.NETRequestWait Time Request Executing Time
| 最近的請求在隊列中等待的毫秒數(shù)。執(zhí)行最近的請求所用的毫秒數(shù)。Queued 在理想狀況下應(yīng)該接近0, Request Queued 等候處理的請求數(shù)。該計數(shù)器應(yīng)保持接近 0。超過 IIS 隊列長度會出如果這兩個值太大, 那么需要重現(xiàn)“服務(wù)器太忙”錯誤 |
|
|
|
|
|
|
|
|
|
這里針對SQL Server2000, 而且只是列出比較關(guān)鍵的幾個。更加詳細的信息可以參考SQL Server 的聯(lián)機文檔。
Object( | Counters | Description | 參考值 |
Processor | %Processor time | CPU 使用率 |
|
SQL Server: Logins/sec | 這是每秒登錄到 SQL Server 的計數(shù) |
|
|
SQLServer:CacheManage | Cache Hit Ratio (all instances) | 顯示在高速緩存中找到數(shù)據(jù)的命中率。如果數(shù)值持續(xù)小于 85%, 則表 示內(nèi)存有問題。
|
|
SQL Server General Statistics | User Connections | 顯示當前 SQL 用戶數(shù)。與 Active Server Pages:Requests/Sec 計數(shù)器 進行比較, 可幫助了解腳本對 SQL Server 的影響程度。如果差別過大, 則表示測試腳本不能有效地對SQL Server 進行應(yīng)力測試。
|
|
SQLServer:Locks | Lock Waits/sec | 顯示在當前進程完成之前強制其他進程等待的每秒鎖定請求的數(shù)量。如果該值始終大于 0, 則表示事務(wù)有問題。
|
|
SQLServer: BuffeManage | Buffer Manager Hit Ratio | 計數(shù)器值依應(yīng)用程序而定, 但比率最好為 90% 或更高。增加內(nèi)存直到這一數(shù)值持續(xù)高于 90%, 表示90% 以上的數(shù)據(jù)請求可以從數(shù)據(jù)緩沖區(qū)中獲得所需數(shù)據(jù)。
|
|
SQLServer SQL Statistics | Batch Requests/sec | 每秒收的Transact-SQL 命令批數(shù)。這一統(tǒng)計信息受所有約束( 如I/O、用戶數(shù)、高速緩存大小、請求I/O、用戶數(shù)、高速緩存大小、請求的復(fù)雜程度等) 影響。批請求數(shù)值 高意味著吞吐量很好。
|
|
SQL Server: Buffer Manager
| Lazy Writes/sec | 每秒被緩沖區(qū)管理器的惰性寫入器寫入的緩沖區(qū)數(shù)。惰性寫入器是一 個系統(tǒng)進程, 其主要任務(wù)是刷新成批的老化的臟緩沖區(qū)( 指包含更改 的緩沖區(qū), 這些更改必須寫回磁盤, 才能使該緩沖區(qū)由其它頁重新使 用), 并使之可由用戶進程使用。惰性寫入器消除了為創(chuàng)建可用緩沖區(qū)而頻繁執(zhí)行檢查點的需要。
|
|
SQL Server: Buffer Manager
| Page Reads/sec | 每秒發(fā)出的物理數(shù)據(jù)庫頁讀取數(shù)。這一統(tǒng)計信息顯示的是在所有數(shù)據(jù) 庫間的物理頁讀取總數(shù)。由于物理I/O 的開銷大, 可以通過使用更大 的數(shù)據(jù)高速緩存、智能索引、更高效的查詢或者改變數(shù)據(jù)庫設(shè)計等方法, 使開銷減到最小。
|
|
SQL Server:Databases
| Transactions/sec | 每秒為數(shù)據(jù)庫啟動的事務(wù)數(shù) |
|
這里針對SQL Server2000, 而且只是列出比較關(guān)鍵的幾個。更加詳細的信息可以參考SQL
Server 的聯(lián)機文檔。
如果要監(jiān)視的兩臺計算機在同一個局域網(wǎng)絡(luò)內(nèi), 建議不要使用Network Delay Monitor。
因為在同一局域網(wǎng)內(nèi),Network Delay 會非常的小, 網(wǎng)絡(luò)監(jiān)視器會有足夠的時間在每秒鐘內(nèi)發(fā)送成百上千的請求, 這樣會導(dǎo)致源計算機(source machine) 的CPU 和內(nèi)存超負荷工作。
默認情況下“Enable display of network nodes by DNS names” 選擇是沒有選中的, 因為
選中它會明顯的降低該監(jiān)視器的速度。
這一章僅僅介紹幾個最重要的圖表。
Q1 事務(wù)響應(yīng)時間是否在可接受的時間內(nèi)? 哪個事務(wù)用的時間最長?
看Transaction Response Time 圖, 可以判斷每個事務(wù)完成用的時間, 從而可以判斷出那個事務(wù)用的時間最長, 那些事務(wù)用的時間超出預(yù)定的可接受時間。
Q2 網(wǎng)絡(luò)帶寬是否足夠?
“Throughput”圖顯示在場景運行期間的每一秒鐘, 從Web Server 上接受到的數(shù)據(jù)量的值。
拿這個值和網(wǎng)絡(luò)帶寬比較, 可以確定目前的網(wǎng)絡(luò)帶寬是否是瓶頸。
如果該圖的曲線隨著用戶數(shù)的增加, 沒有隨著增加, 而是呈比較平的直線, 說明目前的
網(wǎng)絡(luò)速度不能夠滿足目前的系統(tǒng)流量。
Q3 硬件和操作系統(tǒng)能否處理高負載?
“Windows Resources” 圖實時地顯示了Web Server 系統(tǒng)資源的使用情況。利用該圖提供的數(shù)據(jù), 可以把瓶頸定位到特定機器的某個部件。
在使用VuGen 中經(jīng)常會遇到的問題。
在使用Controller 中經(jīng)常會遇到的問題。
1. 在添加完Load Generators 機器時, 連接老是失??; 添加的機器明明已經(jīng)安裝了
loadrunner, 并且網(wǎng)絡(luò)通訊正常。
解決方法: 在安裝loadrunner 的第七步驟, 應(yīng)該選擇第2 項, 如果選擇了第一項,
就會有這種問題。重新安裝一下即可。
2. 在VuGen 中運行良好的腳本, 到Controller 中運行卻出問題。
這種問題可能會遇到。為了確定問題出在Controller 中的場景,而不是腳本的問題,
你應(yīng)該在所有的Load Generators 機器上使用VuGen 運行測試腳本, 確保都能夠運
行正確。因為VuGen 和Controller 運行的機制不一樣。在VuGen 中運行時使用的
是完整的瀏覽器, 而在Controller 中運行時使用的只是瀏覽器的基本的部分。
在使用性能計數(shù)器中經(jīng)常會遇到的問題。
1. 添加了Windows Resources 計數(shù)器后, 卻看不到實時的數(shù)據(jù)。
解決方法: 要得到監(jiān)視的數(shù)據(jù), 必須要在被監(jiān)視的服務(wù)器(Web Server) 上獲得管
理員權(quán)限。最簡單的方法是在“ 網(wǎng)絡(luò)鄰居”中以administrator 身份登陸Web Server。
當然使用下面的控制臺命令也可以:net use \\< 機器名> 然后登陸用戶名和密碼即
可。(登陸的用戶名必須具有管理員權(quán)限)
2. 添加了一些默認的性能計數(shù)器后, 出現(xiàn)了錯誤。
解決方法: 可能是一些LoadRunner 默認的計數(shù)器在WebServer 上已經(jīng)不存在的原
因, 尤其是數(shù)據(jù)庫的計數(shù)器方面。簡單的解決方法, 就是刪除有問題的計數(shù)器, 添
加比較接近的計數(shù)器( 可能需要參考Windows 幫助或者數(shù)據(jù)庫的幫助)
根據(jù)不同的場景設(shè)計,配置腳本后進行測試得到如下結(jié)果
測試環(huán)境
LMM:
CPU:4x2.7G RAM:4G
Websphere 5.0 + IBM Http Server
線程池:100
JDBC連接池:100
會話超時:30分鐘
DS:
CPU:4x2.2 RAM:4G
Websphere 5.0 + IBM Http Server
線程池:100
JDBC連接池:100
會話超時:30分鐘
DB&LDAP:
CPU:2x2.2G RAM:4G
Oralce 8.1.7 + LDAP
測試工具:Load Runner 7.8
用戶數(shù)據(jù):用戶名test1 – test100; 口令與用戶名相同。
測試用例1
測試場景描述
用戶登錄的lmm模塊,總共登陸24個用戶,所有用戶都同時并發(fā)操作。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在10%以下。LMM服務(wù)器CPU利用率峰值為20%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為7秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶平均操作響應(yīng)時間不超過5秒,所有交易成功。
測試用例2
測試場景描述
用戶登陸lmm模塊,總共登錄48個用戶,每1秒登錄1個用戶
用戶點擊“已登記教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習;
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在5%以下。LMM服務(wù)器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為8%,其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶操作響應(yīng)時間不超過3秒,所有交易成功。
測試用例3
測試場景描述
用戶登錄的lmm模塊,總共登陸48個用戶,所有用戶都同時并發(fā)操作。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在20%以下。LMM服務(wù)器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為10秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶平均操作響應(yīng)時間不超過10秒,所有交易成功。
測試用例4
測試場景描述
用戶登錄的lmm模塊,總共登陸48個用戶,每秒同時登錄10個用戶。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在10%以下。LMM服務(wù)器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為2秒),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶平均操作響應(yīng)時間不超過5秒,所有交易成功。
測試用例5
測試場景描述
用戶登錄的lmm模塊,總共登錄100個用戶,每1秒登錄一個用戶。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在20%以下。LMM服務(wù)器CPU利用率峰值為10%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為2’20分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶最大操作響應(yīng)時間30秒,所有交易成功。
測試用例6
測試場景描述
用戶登錄的lmm模塊,總共登陸100個用戶,所有用戶同時并發(fā)操作。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM與DS模塊CPU平均利用率在20%以下。LMM服務(wù)器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為3分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶超時1個。
測試用例7
測試場景描述
用戶登錄的lmm模塊,總共登陸200個用戶,所有用戶同時并發(fā)操作。
用戶點擊“登記的教程”
用戶點擊“啟動”,進行課程學習,進入DS模塊
在DS模塊中進行學習,過程包括:首先,點擊一次課程結(jié)構(gòu)樹;然后,進行課程內(nèi)容的學習。
點擊“返回LMS” 按鈕,返回到lmm模塊
點擊“退出”按鈕,退出系統(tǒng)
測試結(jié)果
LMM CPU平均利用率在20%以下。LMM服務(wù)器CPU利用率峰值為40%,其階段為LMM處理多個用戶同時的登錄請求與點擊“已登記教程”的學習課程查詢。DS服務(wù)器CPU利用率峰值為100%(持續(xù)時間為5分鐘),其階段為DS處理多個用戶單一登錄驗證和同時對課程結(jié)構(gòu)樹查詢。用戶超時108個。
LoadRunner中文使用手冊(完全版) ---作者:huior
LoadRunner 7.8 聯(lián)機幫助