LoadRunner,是一種預測系統(tǒng)行為和性能的負載測試工具。通過模擬上千萬用戶實施并發(fā)負載及實時性能監(jiān)測的方式來確認和查找問題,LoadRunner能夠?qū)φ麄€企業(yè)架構(gòu)進行測試。企業(yè)使用LoadRunner能最大限度地縮短測試時間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。
LoadRunner可適用于各種體系架構(gòu)的自動負載測試,能預測系統(tǒng)行為并評估系統(tǒng)性能。
企業(yè)的網(wǎng)絡(luò)應(yīng)用環(huán)境都必須支持大量用戶,網(wǎng)絡(luò)體系架構(gòu)中含各類應(yīng)用環(huán)境且由不同供應(yīng)商提供軟件和硬件產(chǎn)品。難以預知的用戶負載和愈來愈復雜的應(yīng)用環(huán)境使公司時時擔心會發(fā)生用戶響應(yīng)速度過慢,系統(tǒng)崩潰等問題。這些都不可避免地導致公司收益的損失。Mercury Interactive的LoadRunner能讓企業(yè)保護自己的收入來源,無需購置額外硬件而最大限度地利用現(xiàn)有的IT資源,并確保終端用戶在應(yīng)用系統(tǒng)的各個環(huán)節(jié)中對其測試應(yīng)用的質(zhì)量,可靠性和可擴展性都有良好的評價。LoadRunner的測試對象是整個企業(yè)的系統(tǒng),通過模擬實際用戶的操作行為和實行實時性能監(jiān)測,來幫助企業(yè)客戶更快的查找和發(fā)現(xiàn)問題。
LoadRunner的測試對象是整個企業(yè)的系統(tǒng),它通過模擬實際用戶的操作行為和實行實時性能監(jiān)測,查找和發(fā)現(xiàn)問題。此外,LoadRunner能支持廣泛的協(xié)議和技術(shù)。
虛擬用戶
使用LoadRunner的Virtual User Generator,您能很簡便地創(chuàng)立起系統(tǒng)負載。該引擎能夠生成虛擬用戶,以虛擬用戶的方式模擬真實用戶的業(yè)務(wù)操作行為。它先記錄下業(yè)務(wù)流程(如下訂單或機票預定),然后將其轉(zhuǎn)化為測試腳本。利用虛擬用戶,您可以在Windows,UNIX或Linux機器上同時產(chǎn)生成千上萬個用戶訪問。所以LoadRunner能極大的減少負載測試所需的硬件和人力資源。
用Virtual User Generator建立測試腳本后,您可以對其進行參數(shù)化操作,這一操作能讓您利用幾套不同的實際發(fā)生數(shù)據(jù)來測試您的應(yīng)用程序,從而反映出本系統(tǒng)的負載能力。以一個訂單輸入過程為例,參數(shù)化操作可將記錄中的固定數(shù)據(jù),如訂單號和客戶名稱,由可變值來代替。在這些變量內(nèi)隨意輸入可能的訂單號和客戶名,來匹配多個實際用戶的操作行為。
真實負載
Virtual users建立起后,您需要設(shè)定您的負載方案,業(yè)務(wù)流程組合和虛擬用戶數(shù)量。用LoadRunner的Controller,您能很快組織起多用戶的測試方案。Controller的Rendezvous功能提供一個互動的環(huán)境,在其中您既能建立起持續(xù)且循環(huán)的負載,又能管理和驅(qū)動負載測試方案。
而且,您可以利用它的日程計劃服務(wù)來定義用戶在什么時候訪問系統(tǒng)以產(chǎn)生負載。這樣,您就能將測試過程自動化。同樣您還可以用Controller來限定您的負載方案,在這個方案中所有的用戶同時執(zhí)行一個動作---如登陸到一個庫存應(yīng)用程序----來模擬峰值負載的情況。另外,您還能監(jiān)測系統(tǒng)架構(gòu)中各個組件的性能----包括服務(wù)器,數(shù)據(jù)庫,網(wǎng)絡(luò)設(shè)備等----來幫助客戶決定系統(tǒng)的配置。
定位性能
LoadRunner內(nèi)含集成的實時監(jiān)測器,在負載測試過程的任何時候,您都可以觀察到應(yīng)用系統(tǒng)的運行性能。這些性能監(jiān)測器為您實時顯示交易性能數(shù)據(jù)(如響應(yīng)時間)和其它系統(tǒng)組件包括application server,web server,網(wǎng)路設(shè)備和數(shù)據(jù)庫等的實時性能。這樣,您就可以在測試過程中從客戶和服務(wù)器的雙方面評估這些系統(tǒng)組件的運行性能,從而更快地發(fā)現(xiàn)問題。
利用LoadRunner的ContentCheck TM,您可以判斷負載下的應(yīng)用程序功能正常與否。ContentCheck在Virtual users運行時,檢測應(yīng)用程序的網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)容,從中確定是否有錯誤內(nèi)容傳送出去。它的實時瀏覽器幫助您從終端用戶角度觀察程序性能狀況。
分析結(jié)果
一旦測試完畢后,LoadRunner收集匯總所有的測試數(shù)據(jù),并提供高級的分析和報告工具,以便迅速查找到性能問題并追溯原由。使用LoadRunner的Web交易細節(jié)監(jiān)測器,您可以了解到將所有的圖象、框架和文本下載到每一網(wǎng)頁上所需的時間。例如,這個交易細節(jié)分析機制能夠分析是否因為一個大尺寸的圖形文件或是第三方的數(shù)據(jù)組件造成應(yīng)用系統(tǒng)運行速度減慢。另外,Web交易細節(jié)監(jiān)測器分解用于客戶端、網(wǎng)絡(luò)和服務(wù)器上端到端的反應(yīng)時間,便于確認問題,定位查找真正出錯的組件。例如,您可以將網(wǎng)絡(luò)延時進行分解,以判斷DNS解析時間,連接服務(wù)器或SSL認證所花費的時間。通過使用LoadRunner的分析工具,您能很快地查找到出錯的位置和原因并作出相應(yīng)的調(diào)整。
重復測試
負載測試是一個重復過程。每次處理完一個出錯情況,您都需要對您的應(yīng)用程序在相同的方案下,再進行一次負載測試。以此檢驗您所做的修正是否改善了運行性能。
LoadRunner完全支持EJB的負載測試。這些基于Java的組件運行在應(yīng)用服務(wù)器上,提供廣泛的應(yīng)用服務(wù)。通過測試這些組件,您可以在應(yīng)用程序開發(fā)的早期就確認并解決可能產(chǎn)生的問題。
利用LoadRunner,您可以很方便地了解系統(tǒng)的性能。它的Controller允許您重復執(zhí)行與出錯修改前相同的測試方案。它的基于HTML的報告為您提供一個比較性能結(jié)果所需的基準,以此衡量在一段時間內(nèi),有多大程度的改進并確保應(yīng)用成功。由于這些報告是基于HTML的文本,您可以將其公布于您公司的內(nèi)部網(wǎng)上,便于隨時查閱。
虛擬用戶
LoadRunner使用虛擬用戶(Virtual users)來模擬實際用戶對業(yè)務(wù)系統(tǒng)施加壓力。虛擬用戶在一個中央控制器(controller station)的監(jiān)視下工作。
在做一個測試方案時,要做的第一件事就是創(chuàng)建虛擬用戶執(zhí)行腳本。LoadRunner提供了Virtual User Generator來錄制或編輯虛擬用戶腳本。
使用Vugen創(chuàng)建虛擬用戶執(zhí)行腳本
A.從菜單中選擇運行Virtual User Generator:
B.創(chuàng)建一個單協(xié)議腳本,選擇協(xié)議類型為"Tuxedo 7"
C.在彈出的窗口中輸入Tuxedo客戶機程序的可執(zhí)行文件名(SimpApp.exe),并選擇"Record into Action"為Action。
點擊"OK"開始錄制腳本,這時Vugen就會啟動Simpapp.exe,如輸入WSNADDR,輸入字符串(Tuxedo is powerful!)之后,點擊TOUPPER,TUXEDO服務(wù)器完成請求后把輸出字符串(TUXEDO IS POWERFUL?。懙?Output string"中,點擊停止錄制按鈕。
D.編輯Vuser腳本。在C中做的所有操作都被錄了下來,記錄到一個腳本文件中,其內(nèi)容如下,把它存為simpapp。
腳本內(nèi)容如下:
代碼中加粗的函數(shù)是LoadRunner對TUXEDO函數(shù)的二次包裝。
E.點擊工具欄中的"執(zhí)行"按鈕來執(zhí)行我們剛才錄制的腳本,確保執(zhí)行無誤。
使用控制器來調(diào)度虛擬用戶
A.從菜單中選擇運行Controller;
B.創(chuàng)建一個新的Scenario,選擇剛才錄制的腳本(simpapp);
點擊"OK",彈出Scenario調(diào)度界面。在"Quantity"中輸入100,表示使用100個虛擬用戶。(虛擬用戶與購買的LICENSE有關(guān)聯(lián))
C.點擊"Edit Schedule"來編輯壓力調(diào)度。
D.選擇"Runtime settings"來作運行時設(shè)置。
在Pacing的設(shè)置中,"Number of Iterations"用于設(shè)置Vusers的Actions被執(zhí)行的次數(shù);"Start new iteration"用于設(shè)置調(diào)度器在什么時機迭代執(zhí)行Vusers的Actions。
"Think Time"用于設(shè)置Vusers的反應(yīng)和思考時間,以盡量做到和正常人一樣來施壓。"Ignore think time"表示忽略思考時間,這是理想狀態(tài),一般不使用。"As recorded"表示按照錄制時的實際操作時間。"Multiply recorded think time by"表示Vusers的思考時間是實際錄制時間的若干倍。
在"Miscellaneous"中設(shè)置一些雜項,如使用進程還是使用線程等。對于TUXEDO,好象只能選進程模式。
E.選擇"Start scenario"來開始本次壓力測試調(diào)度。
執(zhí)行結(jié)果分析如下:
施壓時間為5分41秒,Vusers數(shù)量為100,一共完成的Actions交易數(shù)量為5625筆,平均響應(yīng)時間為5.561秒,TPS為17.8。
1.VuGen Load Generator(虛擬用戶生成器)用于捕獲最終用戶業(yè)務(wù)流程和創(chuàng)建自動性能測試腳本(也稱為虛擬用戶腳本)。
2.Controller(控制器)用于組織、驅(qū)動、管理和監(jiān)控負載測試。
3.Analysis(分析器)有助于您查看、分析和比較性能結(jié)果。