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