關(guān)于性能測(cè)試的收獲
性能測(cè)試的主要手段是通過(guò)產(chǎn)生模擬真實(shí)業(yè)務(wù)的壓力對(duì)被測(cè)系統(tǒng)進(jìn)行加壓,研究被測(cè)系統(tǒng)在不同壓力情況下的表現(xiàn),找出其潛在的瓶頸。
目前,典型的企業(yè)IT系統(tǒng)的架構(gòu)為:系統(tǒng)是由客戶端,網(wǎng)絡(luò),防火墻,負(fù)載均衡器,Web服務(wù)器,應(yīng)用服務(wù)器(中間件),數(shù)據(jù)服務(wù)器等等環(huán)節(jié)組成。根據(jù)木桶原理,即木桶所能裝的水取決于最短的那塊木板,整個(gè)系統(tǒng)的性能要得到提高,每個(gè)環(huán)節(jié)的性能都需要優(yōu)化。因此,我們需要找到最短的那塊木板(系統(tǒng)瓶頸)來(lái),先對(duì)其進(jìn)行優(yōu)化。
一個(gè)良好的性能測(cè)試工具必需能做到以下幾點(diǎn):
1、提供產(chǎn)生壓力的手段;
2、能夠?qū)笈_(tái)系統(tǒng)進(jìn)行監(jiān)控;
3、對(duì)壓力數(shù)據(jù)能夠進(jìn)行分析,快速的找出被測(cè)系統(tǒng)的瓶頸。
產(chǎn)生壓力的手段,主要是通過(guò)編寫壓力腳本,這些腳本以多個(gè)進(jìn)程或線程的形式在客戶端進(jìn)行運(yùn)行,來(lái)模擬多用戶對(duì)被測(cè)系統(tǒng)的并發(fā)訪問(wèn),以此來(lái)達(dá)到產(chǎn)生壓力的目的。壓力腳本執(zhí)行的功能和被測(cè)系統(tǒng)客戶端軟件執(zhí)行的功能應(yīng)該一樣,從而產(chǎn)生真正的業(yè)務(wù)壓力。編寫壓力腳本的工作實(shí)際上就是重新編寫客戶端軟件。最有效的方式是通過(guò)性能測(cè)試工具錄制客戶端軟件和服務(wù)器之間的通訊包,自動(dòng)產(chǎn)生腳本,然后在自動(dòng)生成的腳本的基礎(chǔ)上進(jìn)行少量修改,如:關(guān)聯(lián)動(dòng)態(tài)內(nèi)容,指定批量測(cè)試數(shù)據(jù)等,通常,壓力腳本的準(zhǔn)備往往占據(jù)整個(gè)性能測(cè)試項(xiàng)目的50%的時(shí)間和工作量。
對(duì)后臺(tái)數(shù)據(jù)的監(jiān)控。監(jiān)控應(yīng)該不在被測(cè)系統(tǒng)上安裝任何軟件,即達(dá)到“無(wú)代理”監(jiān)控。原因有兩個(gè):假若安裝了“代理”軟件,它會(huì)對(duì)被測(cè)系統(tǒng)的分析結(jié)果產(chǎn)生影響,造成測(cè)試結(jié)果的不準(zhǔn)確性。二,還會(huì)對(duì)用戶系統(tǒng)的穩(wěn)定性造成潛在的影響,引起客戶的反感。“無(wú)代理”方式,即不在被測(cè)系統(tǒng)上安裝任何軟件,僅僅通過(guò)改變被測(cè)系統(tǒng)的配置,就可以對(duì)被測(cè)系統(tǒng)進(jìn)行監(jiān)控。
壓力測(cè)試完畢后,我們會(huì)得到詳盡的性能數(shù)據(jù),包括最終用戶的響應(yīng)時(shí)間,后臺(tái)系統(tǒng)各個(gè)部件的運(yùn)行數(shù)據(jù)。由于數(shù)據(jù)非常龐大,數(shù)據(jù)分析工具是必要的。它幫助性能測(cè)試人員去閱讀,解讀好分析數(shù)據(jù),輔助測(cè)試人員定位系統(tǒng)的瓶頸。
性能測(cè)試工具的組成部分有4個(gè):虛擬用戶腳本產(chǎn)生器Vugen(Virtual User Generator),壓力調(diào)度和監(jiān)控系統(tǒng)Conductor,壓力產(chǎn)生器Player,壓力結(jié)果分析工具Analysis。
進(jìn)行性能測(cè)試項(xiàng)目的一般步驟:
1、用戶確定需要錄制的交易,通過(guò)用戶操作和Vugen的錄制,記錄并生成自動(dòng)化腳本。
2、修改腳本,確保腳本可以回放成功。
3、Conductor是一個(gè)集中控制平臺(tái),它和壓力產(chǎn)生器player互連,制定腳本在player上分配,并控制player向被測(cè)系統(tǒng)的加壓方式和行為。
4、Conductor同時(shí)負(fù)責(zé)搜集被測(cè)系統(tǒng)的各個(gè)環(huán)節(jié)的性能數(shù)據(jù)。各個(gè)player會(huì)記錄最終用戶響應(yīng)時(shí)間和腳本執(zhí)行的日記。
5、壓力執(zhí)行結(jié)束后,player將數(shù)據(jù)傳送到Conductor中,Conductor負(fù)責(zé)數(shù)據(jù)的匯總。
6、數(shù)據(jù)分析工具Analysis讀取壓力測(cè)試數(shù)據(jù),進(jìn)行分析工作,確定瓶頸和調(diào)優(yōu)秀方法。
7、針對(duì)性地進(jìn)行系統(tǒng)調(diào)優(yōu),重復(fù)壓力測(cè)試數(shù)據(jù),進(jìn)行分析工作,確定性能是否得到提高。
好了,這就是今天的收獲了~~~
posted on 2012-06-04 10:26 順其自然EVO 閱讀(223) 評(píng)論(0) 編輯 收藏 所屬分類: loadrunner 、性能測(cè)試