隨著新的應(yīng)用技術(shù)的發(fā)展及業(yè)務(wù)系統(tǒng)用戶數(shù)的增加,業(yè)務(wù)系統(tǒng)的上線性能要求越來(lái)越高,要求進(jìn)行性能測(cè)試的項(xiàng)目數(shù)量迅速增長(zhǎng)、性能測(cè)試范圍迅速擴(kuò)大。為適應(yīng)業(yè)務(wù)發(fā)展需要,需要進(jìn)行性能測(cè)試。性能測(cè)試目的是在業(yè)務(wù)應(yīng)用性能調(diào)優(yōu)、容量規(guī)劃部署、投產(chǎn)架構(gòu)驗(yàn)證等方面進(jìn)行性能測(cè)試能力建設(shè)。Loadrunner是性能測(cè)試領(lǐng)域非常知名的測(cè)試工具軟件,在市場(chǎng)占有率上遙遙領(lǐng)先,是性能測(cè)試領(lǐng)域的標(biāo)桿性測(cè)試軟件。Loadrunner是企業(yè)級(jí)的具有極高規(guī)模適應(yīng)性的自動(dòng)負(fù)載測(cè)試工具,它能預(yù)測(cè)企業(yè)IT系統(tǒng)的行為,優(yōu)化性能,它強(qiáng)調(diào)的是整個(gè)企業(yè)的業(yè)務(wù)系統(tǒng)。通過(guò)模擬實(shí)際用戶的操作行為和實(shí)時(shí)性能監(jiān)測(cè),可以幫助更快的確認(rèn)和查找各關(guān)鍵系統(tǒng)可能出現(xiàn)的性能瓶頸問(wèn)題。
Loadrunner工作流程圖及結(jié)構(gòu)說(shuō)明:
Loadrunner組件如下:
Loadrunner典型部署結(jié)構(gòu)如下圖:
性能測(cè)試過(guò)程設(shè)計(jì)及執(zhí)行如下:
1、 創(chuàng)建虛擬用戶腳本
使用LoadRunner的Virtual User Generator引擎,用戶能很簡(jiǎn)便地創(chuàng)立起系統(tǒng)負(fù)載。該引擎能夠生成代理或虛擬的用戶模擬業(yè)務(wù)流程和真正用戶的操作行為。它先記錄下業(yè)務(wù)流程,如網(wǎng)銀查詢或轉(zhuǎn)帳,然后將其轉(zhuǎn)化為測(cè)試腳本。利用虛擬用戶,用戶可以在Windows, UNIX 或Linux機(jī)器上同時(shí)運(yùn)行成千上萬(wàn)個(gè)測(cè)試。所以LoadRunner能極大的減少負(fù)載測(cè)試所需的硬件和人力資源。另外,使用了LoadRunner的TurboLoad專利技術(shù),用戶能獲得最高的規(guī)模適應(yīng)性水平。TurboLoad使用戶有能力創(chuàng)立與每天幾十萬(wàn)名在線用戶和數(shù)以百萬(wàn)計(jì)的點(diǎn)擊數(shù)相匹配的負(fù)載。
圖1 腳本樣例
2、創(chuàng)建真實(shí)的負(fù)載
虛擬用戶建立起后,用LoadRunner的控制器,用戶能很快組織起多用戶的測(cè)試方案。控制器的提供一個(gè)互動(dòng)的環(huán)境,在其中用戶既能建立起持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動(dòng)負(fù)載測(cè)試方案。
圖2 創(chuàng)建真實(shí)的性能場(chǎng)景和負(fù)載
3、定位性能問(wèn)題
LoadRunner內(nèi)含集成的實(shí)時(shí)監(jiān)測(cè)器,在負(fù)載測(cè)試過(guò)程的任何時(shí)候,您都可以觀察到應(yīng)用系統(tǒng)的運(yùn)行性能。這些被動(dòng)監(jiān)測(cè)器為您實(shí)時(shí)顯示交易性能數(shù)據(jù),如反映時(shí)間,和其它系統(tǒng)組件包括應(yīng)用服務(wù)器,Web服務(wù)器,網(wǎng)路設(shè)備和數(shù)據(jù)庫(kù)等的即時(shí)性能。
4、分析結(jié)果精確定位問(wèn)題所在
一旦測(cè)試完畢后,LoadRunner收集匯總所有的測(cè)試數(shù)據(jù),并提供用戶高級(jí)分析和匯報(bào)能力,以便迅速查找到性能問(wèn)題并追溯原由。例如使用LoadRunner的Web 交易細(xì)節(jié)監(jiān)測(cè)器,用戶可以確定將每一網(wǎng)頁(yè)上所有的圖象,框架和文本下載所需得的時(shí)間。
分析示例:
DB CPU=25.7, DB Time=29.2,則25.7/29.2=88.01% 說(shuō)明CPU利用率比較高.
Redo Size:535119字節(jié)/s=0.51m/s說(shuō)明DML操作或者系統(tǒng)并不是特別繁忙.
Logical reads=918550個(gè)block/s=918550*8192/1024/1024=7176m/s,說(shuō)明sql并發(fā)比較多.
Block changes=2914.4,說(shuō)明每秒中有2914.4個(gè)block被修改.
Physical reads/writes都比較小,說(shuō)明我們的buffer cache可以滿足需求.
Parses=5560,每秒解析5560次,包括fast parse,soft parse hard parse,Hard parses=0說(shuō)明大部分的都是fast parse和soft parse.這樣子減少CPU的消耗.
1. 針對(duì)GUI界面應(yīng)用和無(wú)界面應(yīng)用的性能測(cè)試
一般而言,普通的性能測(cè)試工具是通過(guò)錄制應(yīng)用系統(tǒng)前端的用戶界面操作而產(chǎn)生腳本的,這能夠滿足大多數(shù)的實(shí)際應(yīng)用需求。在這些接口當(dāng)中,普通的性能測(cè)試工具都可以錄制,但是其它接口就沒有通常的人機(jī)界面供性能工具錄制使用。如果我們希望對(duì)前置機(jī)產(chǎn)生足夠的壓力,模擬出更加真實(shí)的業(yè)務(wù)壓力狀況,那么就需要進(jìn)行無(wú)界面錄制腳本。
因此,能否提供對(duì)所謂“無(wú)界面”程序產(chǎn)生的壓力進(jìn)行錄制的手段,對(duì)于客戶來(lái)說(shuō)應(yīng)該是非常有意義的。 LoadRunner除了支持一般的界面錄制之外,其Port Mapping技術(shù)完全支持“無(wú)界面”程序的錄制功能,如下圖所示,在客戶中常見的中間件Tuxedo/ TCP Server環(huán)境中都能完美的使用,支持的平臺(tái)跨越Windows, Unix、Linux等各類平臺(tái)。
2. 真實(shí)的負(fù)載能力
使用LoadRunner的虛擬用戶生成器模塊,用戶能很簡(jiǎn)便地創(chuàng)建性能測(cè)試的腳本。該模塊能夠錄制基于真實(shí)用戶的業(yè)務(wù)流程和操作行為,如下訂單或訂單處理,然后將其自動(dòng)轉(zhuǎn)化為測(cè)試腳本。利用虛擬用戶,用戶可以在多臺(tái)機(jī)器上同時(shí)運(yùn)行成千上萬(wàn)個(gè)測(cè)試。所以LoadRunner能極大的減少負(fù)載測(cè)試所需的硬件和人力資源。
3. 易用的操作方式
在性能測(cè)試中,靈活性是不容忽視的問(wèn)題,一般來(lái)說(shuō),性能測(cè)試任務(wù)往往是時(shí)間非緊,任務(wù)重,環(huán)境復(fù)雜,為了在有限的時(shí)間和環(huán)境內(nèi)完成性能測(cè)試工作,測(cè)試產(chǎn)品的易用性將起到?jīng)Q定性作用。
從實(shí)際工作的效果來(lái)看,僅僅由于LoadRunner的易用性一方面,保守的估計(jì),僅僅參數(shù)化一項(xiàng)功能的實(shí)現(xiàn),至少可以使得正式的壓力測(cè)試工作縮短50%以上的時(shí)間。這具有非常重大的現(xiàn)實(shí)意義。
4. 靈活的參數(shù)化
為了模擬真實(shí)的業(yè)務(wù)壓力狀況,通常采用一個(gè)腳本帶多組測(cè)試數(shù)據(jù)的方式,利用腳本里面的參數(shù),讓一個(gè)腳本在不同的循環(huán)中執(zhí)行不同的業(yè)務(wù)數(shù)據(jù)。LoadRunner既快速完成簡(jiǎn)單的參數(shù)化功能:如從數(shù)據(jù)庫(kù)或文件中獲得不同數(shù)據(jù)進(jìn)行參數(shù)化;同時(shí),LoadRunner具有廣泛的平臺(tái)支持和良好的編程支持能力,通過(guò)其靈活性的特點(diǎn),很容易集成用戶現(xiàn)有的API對(duì)腳本進(jìn)行參數(shù)化的功能,特別是對(duì)于一些加密解密的處理,從而能夠模擬出更加真實(shí)的業(yè)務(wù)壓力來(lái)。
5. 產(chǎn)生壓力的方式
測(cè)試腳本創(chuàng)建好后,通過(guò)LoadRunner的控制臺(tái)模塊,用戶能很快組織起多用戶的測(cè)試方案??刂婆_(tái)提供一個(gè)互動(dòng)的環(huán)境,在其中用戶既能建立起持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動(dòng)負(fù)載測(cè)試方案。
另外,使用了LoadRunner的TurboLoad專利技術(shù),用戶能獲得最高的規(guī)模適應(yīng)性水平。TurboLoad使用戶有能力創(chuàng)立與每天幾十萬(wàn)名在線用戶和數(shù)以百萬(wàn)計(jì)的點(diǎn)擊數(shù)相匹配的負(fù)載。
6. 自定義測(cè)試場(chǎng)景
Loadrunner允許用戶自定義各種測(cè)試場(chǎng)景,如:定時(shí)自動(dòng)測(cè)試、遞增式加壓、隨時(shí)間任意變化加壓(即是說(shuō)進(jìn)入自動(dòng)化性能測(cè)試產(chǎn)品后,其中應(yīng)提供直觀的界面用來(lái)配置隨時(shí)間的任意組合加壓場(chǎng)景)、多個(gè)腳本組合加壓等??傮w來(lái)說(shuō),可以任意組合來(lái)實(shí)現(xiàn)實(shí)際需要的各種方式。
Loadrunner不僅可以建立手工場(chǎng)景進(jìn)行壓力測(cè)試,同時(shí)用戶可以根據(jù)需要建立面向目標(biāo)的加壓模式,如基于每秒事務(wù)數(shù),事務(wù)相應(yīng)時(shí)間,最大承受虛擬用戶數(shù),每秒點(diǎn)擊次數(shù)等等。方式靈活多變,有利于用戶根據(jù)實(shí)際需要進(jìn)行相應(yīng)的選擇。
在加壓的時(shí)候,LoadRunner還可以對(duì)每個(gè)虛擬用戶的行為進(jìn)行個(gè)性化處理,如虛擬用戶的訪問(wèn)可以模擬成來(lái)自不同IP地址的訪問(wèn),這樣能夠更加有效地模擬實(shí)際應(yīng)用中來(lái)自于不同地點(diǎn)的訪問(wèn),同時(shí)我們還可以模擬不同的訪問(wèn)帶寬,模擬廣域網(wǎng)環(huán)境等等。
7. 實(shí)時(shí)的性能監(jiān)控
一般而言性能測(cè)試的目的并不僅僅是得出系統(tǒng)的吞吐能力,評(píng)價(jià)系統(tǒng)的當(dāng)前性能,更主要的是發(fā)現(xiàn)系統(tǒng)可能存在的瓶頸,確認(rèn)性能瓶頸并優(yōu)化和調(diào)整應(yīng)用。
很顯然,如果需要來(lái)實(shí)現(xiàn)這樣的目標(biāo),在性能測(cè)試的同時(shí),沒有一套實(shí)時(shí)的同步系統(tǒng)監(jiān)控功能是無(wú)法實(shí)現(xiàn)的。我們不可能在使用性能測(cè)試軟件的同時(shí),借助第三方的系統(tǒng)軟件來(lái)完成“實(shí)時(shí)”監(jiān)控。因?yàn)榈谌奖O(jiān)控軟件即使能夠監(jiān)控,也很難和性能測(cè)試軟件實(shí)現(xiàn)同步,而且會(huì)添加大量的手工工作,例如記錄加壓時(shí)間,將性能測(cè)試報(bào)表與系統(tǒng)監(jiān)控軟件報(bào)表關(guān)聯(lián)等等。
Loadrunner性能測(cè)試解決方案在提供強(qiáng)大的性能測(cè)試的同時(shí)還提供了功能豐富的服務(wù)器監(jiān)控功能,在性能測(cè)試過(guò)程中能夠監(jiān)測(cè)系統(tǒng)各層面的每一部件的性能。通過(guò)記錄整個(gè)系統(tǒng)所有性能數(shù)據(jù),測(cè)試人員可以將這些信息對(duì)應(yīng)最終用戶的負(fù)載和響應(yīng)時(shí)間,以此定位瓶頸所在。更為重要的是:對(duì)于待測(cè)服務(wù)器的同步監(jiān)控,不需要安裝任何代理,只要進(jìn)行簡(jiǎn)單的配置就可獲得服務(wù)器上相關(guān)的性能數(shù)據(jù),這樣就以一種完全無(wú)干擾原先系統(tǒng)的方式進(jìn)行,最大限度地減少了對(duì)被測(cè)服務(wù)器性能的影響。
相比其他同類性能測(cè)試產(chǎn)品來(lái)說(shuō),LoadRunner監(jiān)控功能尤為突出,支持各類環(huán)境、操作系統(tǒng)、網(wǎng)絡(luò)、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。對(duì)于客戶有Windows、Unix以及Linux等眾多環(huán)境的情況尤為適合,客戶將不必為由于測(cè)試環(huán)境的改變而改換其他測(cè)試產(chǎn)品。下面是LoadRunner所提供的部分監(jiān)控功能:
? 運(yùn)行時(shí)間監(jiān)控 – 虛擬用戶狀態(tài),用戶指定的數(shù)據(jù)站
? 交易監(jiān)控 – 反應(yīng)時(shí)間,交易成功與否
? 網(wǎng)絡(luò)服務(wù)器資源監(jiān)控 – 單位秒的點(diǎn)擊數(shù),吞吐量
? 多操作系統(tǒng)資源監(jiān)控 – CPU,內(nèi)存,I/O等
? 中間件監(jiān)控 – Tuxedo, Weblogic, Websphere等
? 數(shù)據(jù)庫(kù)服務(wù)器監(jiān)控 – Oracle,SQLServer,DB2,Sybase
8. 強(qiáng)大的關(guān)聯(lián)分析
性能測(cè)試測(cè)試結(jié)束,通過(guò)高度準(zhǔn)確的記錄達(dá)到模擬真實(shí)用戶的行為,與此同時(shí)實(shí)時(shí)對(duì)應(yīng)性能監(jiān)控?cái)?shù)據(jù)也采集完畢,但這并不能說(shuō)明性能測(cè)試完畢,因?yàn)榉治鲂阅軠y(cè)試結(jié)果才是性能測(cè)試過(guò)程中最后壓軸戲。如何通過(guò)對(duì)測(cè)試數(shù)據(jù)的分析,提供數(shù)據(jù)關(guān)聯(lián)的功能,盡可能自動(dòng)查找到與所測(cè)業(yè)務(wù)最為相關(guān)的性能數(shù)據(jù),幫助定位性能瓶頸,這才是性能測(cè)試解決方案必須完成的工作。市場(chǎng)上有相當(dāng)多的性能測(cè)試產(chǎn)品也能提供一定的性能測(cè)試功能,借助第三方的軟件還能夠集成性能監(jiān)控?cái)?shù)據(jù),但是往往只能提供一些簡(jiǎn)單的報(bào)表。但它們恰恰忽略了最重要的分析,用戶在性能測(cè)試完畢后,面對(duì)大量的數(shù)據(jù)通常是無(wú)從入手,簡(jiǎn)單的報(bào)表離分析瓶頸更是相差甚遠(yuǎn),因此如何能夠提供良好的分析功能往往會(huì)成為衡量性能測(cè)試解決方案是否優(yōu)秀的一個(gè)重要標(biāo)準(zhǔn)。
Loadrunner 除了提供性能測(cè)試的功能之外,還提供了一個(gè)分析模塊:Analysis。Analysis主要了提供一個(gè)集成環(huán)境,集中收集所有在測(cè)試周期中產(chǎn)生的數(shù)據(jù)。由于這個(gè)工具功能強(qiáng)大且使用簡(jiǎn)單,測(cè)試人員可以創(chuàng)建跨場(chǎng)景的圖表數(shù)據(jù)比較,增強(qiáng)數(shù)據(jù)分析的能力和速度。
同時(shí)LoadRunner 的分析功能利用內(nèi)置的先進(jìn)數(shù)學(xué)分析模式提供了高水平的問(wèn)題定位能力,能幫助測(cè)試人員找出這些場(chǎng)景中的瓶頸所在,再輔以利用一系列復(fù)雜的圖表和文字說(shuō)明來(lái)解釋問(wèn)題。其關(guān)聯(lián)功能更是大大提高了智能分析能力,加快幫助用戶分析結(jié)果。例如:可以在一個(gè)時(shí)間段內(nèi)將多個(gè)視圖疊加進(jìn)行比較,還可以將兩次運(yùn)行的結(jié)果放在一起進(jìn)行對(duì)比,了解性能是否得到提高。最后LoadRunner通過(guò)自動(dòng)關(guān)聯(lián)分析能夠自動(dòng)生成測(cè)試分析報(bào)告,可以是基于word,html的,也可以是Crystal Report格式。
下面是LoadRunner 提供的部分性能圖表
? 百分比 – 分析在一定時(shí)間段內(nèi)完成執(zhí)行的交易所占百分比
? 負(fù)載下的性能 – 指明在場(chǎng)景執(zhí)行中,任何方位運(yùn)行虛擬用戶的數(shù)量和與之相關(guān)的交易時(shí)間
? 交易性能 – 在場(chǎng)景執(zhí)行過(guò)程中每秒內(nèi)完成交易平均花費(fèi)的時(shí)間
? 交易性能概述 – 顯示場(chǎng)景中所有交易的最長(zhǎng),最短和平均時(shí)間
? 虛擬用戶反應(yīng)交易性能 – 顯示每個(gè)虛擬用戶各自完成交易所需時(shí)間
? 交易分布情況 – 顯示執(zhí)行各個(gè)交易占用到的時(shí)間分布狀況
9. Loadrunner更多技術(shù)特點(diǎn)
? 采用無(wú)代理的性能監(jiān)控器,用于采集被測(cè)系統(tǒng)的性能參數(shù),在被測(cè)試系統(tǒng)上,不安裝任何代理軟件,消除對(duì)被監(jiān)測(cè)系統(tǒng)的外源性影響。
? 全面分析壓力測(cè)試結(jié)果,使用類似自動(dòng)關(guān)聯(lián)的技術(shù),自動(dòng)擬合應(yīng)用性能參數(shù)(如應(yīng)用響應(yīng)時(shí)間,應(yīng)用并發(fā)用戶數(shù))和系統(tǒng)性能參數(shù)(如網(wǎng)絡(luò)性能指標(biāo),操作系統(tǒng)性能指標(biāo),數(shù)據(jù)庫(kù)性能指標(biāo)等),得出應(yīng)用系統(tǒng)性能的瓶頸。
? 產(chǎn)生基于各類格式的測(cè)試報(bào)告。
? 支持最廣泛的業(yè)界標(biāo)準(zhǔn):Winsocket、MS SQL Server、ODBC、Oracle、Web、LDAP、FTP、SOAP、DNS、SAP、Siebel、People-Soft、RMI、EJB、Corba、COM、Tuxedo、MQSeries、Citrix、RTE、Real player、MS media player、.Net及移動(dòng)應(yīng)用等各類環(huán)境。
? 中文版產(chǎn)品,包括安裝文件,幫助文檔,使用界面,測(cè)試報(bào)告均為中文。