LoadRunner,是(shi)一種預測系(xi)統行為和(he)性能(neng)的負載(zai)測試工具(ju)。通過模(mo)擬上千萬用戶實施并發負載(zai)及實時性能(neng)監測的方式來(lai)確(que)認和(he)查找(zhao)問題(ti),LoadRunner能(neng)夠對(dui)整(zheng)個(ge)企(qi)(qi)業架(jia)構進(jin)行測試。企(qi)(qi)業使用LoadRunner能(neng)最大限度地縮(suo)短測試時間,優化性能(neng)和(he)加速應用系(xi)統的發布周期。
LoadRunner可適用(yong)于各種體系(xi)(xi)架(jia)構的(de)自動(dong)負載測試(shi),能預測系(xi)(xi)統行為并評(ping)估系(xi)(xi)統性能。
企(qi)(qi)業的(de)(de)網絡應(ying)用(yong)(yong)環(huan)(huan)境都(dou)(dou)必須支(zhi)持大量(liang)用(yong)(yong)戶(hu),網絡體(ti)系(xi)架構中含各類應(ying)用(yong)(yong)環(huan)(huan)境且由不同供應(ying)商提(ti)供軟件和硬件產品。難(nan)以預知的(de)(de)用(yong)(yong)戶(hu)負載(zai)和愈(yu)來(lai)愈(yu)復雜的(de)(de)應(ying)用(yong)(yong)環(huan)(huan)境使公司時(shi)時(shi)擔心會發生用(yong)(yong)戶(hu)響應(ying)速度過慢,系(xi)統(tong)崩(beng)潰等問題。這些都(dou)(dou)不可避免地導致(zhi)公司收(shou)益的(de)(de)損失。Mercury Interactive的(de)(de)LoadRunner能讓企(qi)(qi)業保護自己的(de)(de)收(shou)入來(lai)源,無(wu)需購置額外硬件而最大限度地利(li)用(yong)(yong)現有的(de)(de)IT資源,并(bing)確保終端用(yong)(yong)戶(hu)在應(ying)用(yong)(yong)系(xi)統(tong)的(de)(de)各個環(huan)(huan)節中對(dui)其測試(shi)應(ying)用(yong)(yong)的(de)(de)質量(liang),可靠(kao)性和可擴展性都(dou)(dou)有良好的(de)(de)評價。LoadRunner的(de)(de)測試(shi)對(dui)象是整個企(qi)(qi)業的(de)(de)系(xi)統(tong),通過模擬實(shi)際用(yong)(yong)戶(hu)的(de)(de)操作行(xing)為和實(shi)行(xing)實(shi)時(shi)性能監測,來(lai)幫助企(qi)(qi)業客(ke)戶(hu)更快的(de)(de)查找和發現問題。
LoadRunner的(de)(de)(de)測(ce)試對象是整個企業的(de)(de)(de)系(xi)統,它(ta)通過模擬實(shi)(shi)際(ji)用戶的(de)(de)(de)操作行(xing)為和(he)(he)(he)實(shi)(shi)行(xing)實(shi)(shi)時性能監(jian)測(ce),查找和(he)(he)(he)發現問題。此外,LoadRunner能支持廣泛的(de)(de)(de)協議(yi)和(he)(he)(he)技(ji)術(shu)。
虛擬用戶
使用(yong)(yong)(yong)(yong)(yong)LoadRunner的(de)(de)Virtual User Generator,您能(neng)(neng)很簡便地創(chuang)立起系統負載。該(gai)引擎能(neng)(neng)夠(gou)生成(cheng)虛擬用(yong)(yong)(yong)(yong)(yong)戶,以虛擬用(yong)(yong)(yong)(yong)(yong)戶的(de)(de)方(fang)式模擬真實(shi)用(yong)(yong)(yong)(yong)(yong)戶的(de)(de)業(ye)務(wu)操(cao)作(zuo)行為。它先(xian)記錄(lu)下業(ye)務(wu)流程(如下訂單或(huo)(huo)機(ji)票預(yu)定(ding)),然后將其轉化為測(ce)試腳本。利用(yong)(yong)(yong)(yong)(yong)虛擬用(yong)(yong)(yong)(yong)(yong)戶,您可以在Windows,UNIX或(huo)(huo)Linux機(ji)器上(shang)同時(shi)產生成(cheng)千上(shang)萬個(ge)用(yong)(yong)(yong)(yong)(yong)戶訪問。所(suo)以LoadRunner能(neng)(neng)極(ji)大的(de)(de)減少負載測(ce)試所(suo)需的(de)(de)硬(ying)件和人力資源。
用(yong)Virtual User Generator建(jian)立測試腳(jiao)本后,您可(ke)以對其進行(xing)參(can)數(shu)化操(cao)(cao)作(zuo),這(zhe)一(yi)操(cao)(cao)作(zuo)能(neng)讓您利用(yong)幾套(tao)不同(tong)的(de)實際(ji)發生數(shu)據來(lai)測試您的(de)應用(yong)程序,從而反(fan)映出本系統的(de)負(fu)載能(neng)力。以一(yi)個(ge)訂(ding)單輸入過程為例(li),參(can)數(shu)化操(cao)(cao)作(zuo)可(ke)將記錄中(zhong)的(de)固定(ding)數(shu)據,如訂(ding)單號(hao)和客戶名(ming)稱,由可(ke)變值來(lai)代(dai)替。在這(zhe)些變量內隨(sui)意(yi)輸入可(ke)能(neng)的(de)訂(ding)單號(hao)和客戶名(ming),來(lai)匹配多(duo)個(ge)實際(ji)用(yong)戶的(de)操(cao)(cao)作(zuo)行(xing)為。
真實負載
Virtual users建立起(qi)(qi)后,您(nin)需(xu)要設定您(nin)的(de)負載(zai)(zai)方案,業(ye)務流程組合和虛擬用(yong)(yong)戶(hu)(hu)數量。用(yong)(yong)LoadRunner的(de)Controller,您(nin)能(neng)(neng)很快組織起(qi)(qi)多用(yong)(yong)戶(hu)(hu)的(de)測試方案。Controller的(de)Rendezvous功能(neng)(neng)提供一個互動的(de)環(huan)境,在其中您(nin)既能(neng)(neng)建立起(qi)(qi)持續且(qie)循環(huan)的(de)負載(zai)(zai),又能(neng)(neng)管理和驅動負載(zai)(zai)測試方案。
而且,您可以利(li)用(yong)它的(de)日程(cheng)計(ji)劃服務(wu)來定(ding)義用(yong)戶(hu)在什么時(shi)候訪問系統(tong)以產(chan)生負(fu)載。這樣,您就能將測試過程(cheng)自(zi)動化。同樣您還可以用(yong)Controller來限定(ding)您的(de)負(fu)載方案,在這個方案中所有的(de)用(yong)戶(hu)同時(shi)執行一(yi)個動作---如登陸到一(yi)個庫(ku)存(cun)應用(yong)程(cheng)序----來模擬(ni)峰(feng)值負(fu)載的(de)情(qing)況。另外(wai),您還能監測系統(tong)架構中各個組件的(de)性(xing)能----包括服務(wu)器,數據(ju)庫(ku),網絡設備(bei)等----來幫助客戶(hu)決(jue)定(ding)系統(tong)的(de)配置(zhi)。
定位性能
LoadRunner內含集成的實(shi)(shi)(shi)時監測(ce)器(qi),在負載測(ce)試(shi)(shi)過程的任何時候,您都可(ke)以觀(guan)察到應用系(xi)統的運行性(xing)能。這(zhe)(zhe)些性(xing)能監測(ce)器(qi)為(wei)您實(shi)(shi)(shi)時顯示(shi)交易(yi)性(xing)能數(shu)(shu)據(如響應時間(jian))和(he)其(qi)它系(xi)統組(zu)件包括application server,web server,網路(lu)設備和(he)數(shu)(shu)據庫等的實(shi)(shi)(shi)時性(xing)能。這(zhe)(zhe)樣(yang),您就可(ke)以在測(ce)試(shi)(shi)過程中(zhong)從客戶和(he)服務器(qi)的雙方面評估這(zhe)(zhe)些系(xi)統組(zu)件的運行性(xing)能,從而更快地發現(xian)問題(ti)。
利用(yong)LoadRunner的(de)(de)ContentCheck TM,您可以判斷負載(zai)下的(de)(de)應用(yong)程序(xu)(xu)(xu)功能正(zheng)常與否。ContentCheck在Virtual users運行時,檢(jian)測應用(yong)程序(xu)(xu)(xu)的(de)(de)網絡(luo)數據包內(nei)容(rong),從(cong)中確定(ding)是否有錯(cuo)誤內(nei)容(rong)傳送(song)出(chu)去(qu)。它的(de)(de)實時瀏覽(lan)器幫助您從(cong)終(zhong)端(duan)用(yong)戶(hu)角度觀察程序(xu)(xu)(xu)性能狀況(kuang)。
分析結果
一旦(dan)測試完畢后,LoadRunner收(shou)集匯總所(suo)有(you)的(de)(de)(de)測試數(shu)據,并提供高級的(de)(de)(de)分(fen)析和(he)報告工(gong)具(ju),以便迅速查(cha)找到(dao)性能(neng)(neng)問題(ti)并追溯原由(you)。使用LoadRunner的(de)(de)(de)Web交(jiao)易(yi)(yi)(yi)細(xi)節監測器,您可以了解(jie)到(dao)將所(suo)有(you)的(de)(de)(de)圖象、框架和(he)文本(ben)下(xia)載到(dao)每(mei)一網(wang)頁上(shang)(shang)所(suo)需的(de)(de)(de)時(shi)間(jian)(jian)。例如,這個交(jiao)易(yi)(yi)(yi)細(xi)節分(fen)析機(ji)制能(neng)(neng)夠分(fen)析是(shi)否(fou)因為一個大尺寸(cun)的(de)(de)(de)圖形(xing)文件或(huo)是(shi)第(di)三方的(de)(de)(de)數(shu)據組件造成應(ying)用系(xi)統運(yun)行速度(du)減慢。另外,Web交(jiao)易(yi)(yi)(yi)細(xi)節監測器分(fen)解(jie)用于(yu)客戶(hu)端、網(wang)絡(luo)和(he)服務器上(shang)(shang)端到(dao)端的(de)(de)(de)反應(ying)時(shi)間(jian)(jian),便于(yu)確認問題(ti),定位(wei)查(cha)找真正出(chu)錯的(de)(de)(de)組件。例如,您可以將網(wang)絡(luo)延時(shi)進行分(fen)解(jie),以判斷DNS解(jie)析時(shi)間(jian)(jian),連接(jie)服務器或(huo)SSL認證所(suo)花費(fei)的(de)(de)(de)時(shi)間(jian)(jian)。通過使用LoadRunner的(de)(de)(de)分(fen)析工(gong)具(ju),您能(neng)(neng)很快地查(cha)找到(dao)出(chu)錯的(de)(de)(de)位(wei)置和(he)原因并作出(chu)相應(ying)的(de)(de)(de)調整(zheng)。
重復測試
負載(zai)測試是一個重復過(guo)程(cheng)(cheng)。每次(ci)處理(li)完一個出錯情況,您(nin)都(dou)需要(yao)對您(nin)的(de)應用(yong)程(cheng)(cheng)序在相同的(de)方案(an)下(xia),再進行(xing)一次(ci)負載(zai)測試。以此檢驗(yan)您(nin)所做的(de)修正是否(fou)改善了(le)運行(xing)性能。
LoadRunner完(wan)全支持EJB的(de)負載測試(shi)。這些基于Java的(de)組(zu)件運行在應用(yong)服務器(qi)上,提供廣泛的(de)應用(yong)服務。通過(guo)測試(shi)這些組(zu)件,您可以在應用(yong)程序開發的(de)早(zao)期(qi)就確認并解(jie)決可能產生(sheng)的(de)問題。
利用LoadRunner,您可(ke)以(yi)(yi)很方便(bian)地(di)了解系統的性(xing)能。它(ta)的Controller允(yun)許您重復執(zhi)行(xing)與出錯修改(gai)前相(xiang)同的測試方案。它(ta)的基于HTML的報(bao)告(gao)為您提供一個比較性(xing)能結果所需的基準,以(yi)(yi)此(ci)衡(heng)量在一段時間內(nei),有多大程度的改(gai)進并確(que)保應用成功。由于這些報(bao)告(gao)是基于HTML的文本,您可(ke)以(yi)(yi)將其公布于您公司的內(nei)部網(wang)上,便(bian)于隨時查閱。
虛擬用戶
LoadRunner使用虛擬(ni)用戶(Virtual users)來模(mo)擬(ni)實際(ji)用戶對業務系統施加壓力。虛擬(ni)用戶在(zai)一個中央控制器(controller station)的監視下(xia)工作。
在做一(yi)個測試方案時(shi),要(yao)做的第一(yi)件事就是創建虛(xu)擬用戶執行腳本。LoadRunner提供了Virtual User Generator來(lai)錄(lu)制(zhi)或編輯虛(xu)擬用戶腳本。
使用Vugen創建虛擬用戶(hu)執行腳本
A.從菜單中(zhong)選(xuan)擇(ze)運(yun)行Virtual User Generator:
B.創(chuang)建一個單協(xie)議腳本,選擇(ze)協(xie)議類(lei)型(xing)為"Tuxedo 7"
C.在彈出的窗(chuang)口中輸入Tuxedo客戶機程序的可執行(xing)文(wen)件名(SimpApp.exe),并選擇(ze)"Record into Action"為Action。
點(dian)擊(ji)"OK"開始(shi)錄制(zhi)腳本(ben),這時Vugen就(jiu)會啟動Simpapp.exe,如輸(shu)入WSNADDR,輸(shu)入字符串(Tuxedo is powerful!)之后(hou),點(dian)擊(ji)TOUPPER,TUXEDO服務(wu)器完成(cheng)請求后(hou)把(ba)輸(shu)出字符串(TUXEDO IS POWERFUL!)寫到"Output string"中,點(dian)擊(ji)停止錄制(zhi)按鈕。
D.編(bian)輯Vuser腳本。在C中做的所有操作都(dou)被錄(lu)了下來(lai),記錄(lu)到一(yi)個腳本文(wen)件中,其內容如(ru)下,把(ba)它存為(wei)simpapp。
腳本內容如下:
代(dai)碼中加粗的函數(shu)是LoadRunner對TUXEDO函數(shu)的二(er)次包裝。
E.點擊(ji)工具欄中的(de)"執行"按鈕(niu)來執行我們剛才錄制的(de)腳本(ben),確保(bao)執行無誤。
使用控制器來調度虛擬用戶(hu)
A.從菜(cai)單中選擇運行Controller;
B.創建一個新(xin)的(de)Scenario,選擇剛才錄制的(de)腳(jiao)本(simpapp);
點擊(ji)"OK",彈(dan)出Scenario調度界(jie)面。在"Quantity"中輸(shu)入100,表示使(shi)用(yong)(yong)100個虛(xu)擬用(yong)(yong)戶(hu)。(虛(xu)擬用(yong)(yong)戶(hu)與購買的LICENSE有關聯)
C.點擊"Edit Schedule"來(lai)編輯壓力調度。
D.選(xuan)擇"Runtime settings"來作(zuo)運行時設置。
在Pacing的(de)設(she)置中,"Number of Iterations"用(yong)于設(she)置Vusers的(de)Actions被執行的(de)次數;"Start new iteration"用(yong)于設(she)置調(diao)度器在什么時機迭代(dai)執行Vusers的(de)Actions。
"Think Time"用于設置Vusers的反應和思考時間(jian)(jian)(jian)(jian),以(yi)盡量做到和正(zheng)常人一(yi)樣來(lai)施壓。"Ignore think time"表示(shi)忽略(lve)思考時間(jian)(jian)(jian)(jian),這是(shi)理想狀(zhuang)態,一(yi)般(ban)不使用。"As recorded"表示(shi)按照錄制時的實(shi)際操作時間(jian)(jian)(jian)(jian)。"Multiply recorded think time by"表示(shi)Vusers的思考時間(jian)(jian)(jian)(jian)是(shi)實(shi)際錄制時間(jian)(jian)(jian)(jian)的若干倍。
在"Miscellaneous"中設(she)置一些(xie)雜項(xiang),如使用進(jin)程還是使用線程等。對于TUXEDO,好象(xiang)只能(neng)選進(jin)程模式。
E.選擇"Start scenario"來開始本次壓力測試調度。
執行結果分析如下:
施壓時間為(wei)(wei)(wei)5分41秒(miao),Vusers數量(liang)為(wei)(wei)(wei)100,一共完成的Actions交易數量(liang)為(wei)(wei)(wei)5625筆,平均(jun)響應時間為(wei)(wei)(wei)5.561秒(miao),TPS為(wei)(wei)(wei)17.8。
1.VuGen Load Generator(虛(xu)(xu)擬(ni)用(yong)(yong)戶(hu)生成器)用(yong)(yong)于捕獲(huo)最終用(yong)(yong)戶(hu)業務流(liu)程(cheng)和創建自動性能測(ce)試腳(jiao)本(ben)(也稱為虛(xu)(xu)擬(ni)用(yong)(yong)戶(hu)腳(jiao)本(ben))。
2.Controller(控制器)用(yong)于組織、驅(qu)動、管理和(he)監控負載測試。
3.Analysis(分析器)有助于您(nin)查看、分析和比較性能(neng)結果。