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