性能測試、壓力測試、負(fù)載測試的區(qū)別
負(fù)載測試(Load testing)、壓力測試(Stress Test,應(yīng)稱為強度測試)和性能測試,這三個概念常常引起混淆、難以區(qū)分,從而造成不正確的理解和錯誤的使用。雖然負(fù)載測試、壓力測試和性能測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環(huán)境和測試工具,而且都會監(jiān)控系統(tǒng)所占用資源的情況以及其它相應(yīng)的性能指標(biāo),這也是造成人們?nèi)菀桩a(chǎn)生概念混淆的主要原因。
l影響軟件運行的因素
軟件通常是運行在特定環(huán)境中,這種環(huán)境包括支撐軟件運行的軟硬件配置和影響軟件運行的外部因素。為了讓客戶使用軟件系統(tǒng)有更好的體驗感,必須確保系統(tǒng)運行良好,達(dá)到高安全、高可靠和高性能。其中,系統(tǒng)是否具有高性能的運行特征,不僅取決于系統(tǒng)本身的設(shè)計和程序算法,而且取決于系統(tǒng)的運行環(huán)境。系統(tǒng)的運行環(huán)境會依賴于一些關(guān)鍵因素,例如:
1、系統(tǒng)架構(gòu):如分布式服務(wù)器集群還是集中式主機系統(tǒng)等;
2、硬件配置:如服務(wù)器的配置,CPU、內(nèi)存等配置越高,系統(tǒng)的性能會越好;
3、網(wǎng)絡(luò)帶寬:隨著帶寬的提高,客戶端訪問服務(wù)器的速度會有較大的改善;
4、支撐軟件的選定:如選定不同的數(shù)據(jù)庫管理系統(tǒng)(Oracle、MySQL等)和web應(yīng)用服務(wù)器(Tomcat、GlassFish、Jboss、WebLogic等),對應(yīng)用系統(tǒng)的性能都有影響;
5、外部負(fù)載:同時有多少個用戶訪問、用戶上傳文件大小、數(shù)據(jù)庫中的記錄數(shù)等都會對系統(tǒng)的性能有影響,一般來說,系統(tǒng)負(fù)載越大,系統(tǒng)的性能會降低。
l性能、壓力、負(fù)載測試概念
性能測試是通過自動化的測試工具模擬多種正常峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進行測試。壓力測試和負(fù)載測試都屬于性能測試,兩者一般結(jié)合進行。
負(fù)載測試是模擬軟件系統(tǒng)所承受的負(fù)載條件的系統(tǒng)負(fù)荷,通過不斷加壓(如逐漸增加模擬用戶數(shù)量)或其它加載方式來觀察不同負(fù)載下系統(tǒng)的響應(yīng)時間和數(shù)據(jù)吞吐量、系統(tǒng)占用的資源(如CPU/內(nèi)存/磁盤讀寫)等,以檢驗系統(tǒng)的行為和特性,以發(fā)現(xiàn)系統(tǒng)可能存在的性能瓶頸、內(nèi)存泄漏、不能實時同步等問題,負(fù)載更多地體現(xiàn)了一種方法或技術(shù)。
壓力測試是在強負(fù)載(大數(shù)據(jù)量、大量并發(fā)用戶等)下的測試,查看應(yīng)用系統(tǒng)在峰值使用情況下的操作行為,從而有效地發(fā)現(xiàn)系統(tǒng)的某項功能隱患、系統(tǒng)是否具有良好的容錯能力和可恢復(fù)能力。壓力測試分為高負(fù)載下的長時間(如持續(xù)運行24小時及以上)的穩(wěn)定性壓力測試和極限負(fù)載情況下導(dǎo)致系統(tǒng)崩潰的破壞性壓力測試。
l負(fù)載測試與壓力測試特點:
u兩者都是通過模擬軟件生產(chǎn)運行的業(yè)務(wù)壓力值和使用場景組合測試軟件的性能是否能夠滿足需要,主要具備一下三個特點:
1、目的是驗證系統(tǒng)是否具有系統(tǒng)宣稱具有的健壯能力;
2、需要事先了解被測系統(tǒng)使用的典型場景(如淘寶的雙十一凌晨下單支付),并確定性能目標(biāo);
3、模擬測試的進行必須要求在已確定的環(huán)境中。
u負(fù)載測試用來驗證系統(tǒng)飽和狀態(tài)、確定閾值,其特點:
1、目的是摘到系統(tǒng)處理能力的極限,通過檢測、加壓、閾值手段找到如“響應(yīng)時間補超過10s”、“服務(wù)器平均CPU利用率低于65%”等指標(biāo);
2、需要再給定的測試環(huán)境下進行,通常也需要考慮被測系統(tǒng)的業(yè)務(wù)場景和壓力量;
3、這種方法一般用來了解系統(tǒng)的性能容量,或者配合性能調(diào)優(yōu)的時候來使用。
u壓力測試是測試系統(tǒng)在一定飽和狀態(tài)下(CPU/內(nèi)存等飽和),系統(tǒng)能夠處理session的能力,以及系統(tǒng)是否會出現(xiàn)崩潰等,其特點:
1、該方法是檢查系統(tǒng)處于壓力情況下應(yīng)用的表現(xiàn)。如增加VU數(shù)量、節(jié)點數(shù)量、并發(fā)用戶數(shù)量等使系統(tǒng)的資源使用保持一定的水平,目的在于檢測此時應(yīng)用的表現(xiàn),重點在于觀察有無錯誤信息產(chǎn)生,系統(tǒng)的響應(yīng)時間等;
2、該方法通過模擬負(fù)載實現(xiàn)壓力。首先需要考慮模擬是否有效,其次需要結(jié)合業(yè)務(wù)和軟件架構(gòu)來定制模擬指標(biāo),需要選取合適的測試工具使測試數(shù)據(jù)更有參考性;
3、該方法也能測試系統(tǒng)的穩(wěn)定性,需要根據(jù)平臺使用場景定義多長的壓測時間才能有效得體現(xiàn)出穩(wěn)定性。