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