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