作為性能測試基礎篇最后一節(jié),今天不聊別的,主要看下性能測試常用的策略有哪些,有哪些是你已經在工作中運用到了的。
常用性能測試策略:
1、基準測試
單用戶測試,目的是為其他測試提供參考依據(jù);
建議單用戶循環(huán)多次得到的數(shù)據(jù),避免單獨請求一次的結果(這有偶然性)
2、并發(fā)測試
模擬客戶端請求,在單位時間內(S)同時發(fā)起一定量的請求,驗證系統(tǒng)是否具有并發(fā)性的問題。
3、負載測試
不斷增加請求壓力,直到服務器某個資源項達到飽和(比如CPU使用率達到90%+)或某個指標達到安全臨界值(比如運維的監(jiān)控告警閾值or拐點);
負載測試(也叫階梯式壓測)一般主要用來尋找性能的拐點,驗證系統(tǒng)在既有測試環(huán)境不同的請求壓力下能否正常運行。
4、容量測試
采用負載測試策略,驗證在現(xiàn)有測試環(huán)境下被測系統(tǒng)的最大性能表現(xiàn)(可接受的最大性能表現(xiàn),不一定是最優(yōu)性能表現(xiàn))。
5、極限測試
在既有測試環(huán)境下,不考慮資源占用率的極限情況(CPU使用率達到95%以上或IO異常繁忙或Load值較高),在系統(tǒng)不宕機的情況下的最大處理能力。
PS:由于被測系統(tǒng)的業(yè)務場景各不相同,這種策略,采用率相對較少。
6、配置測試
不斷調整系統(tǒng)各方面的配置(軟硬件、參數(shù)配置等),驗證在性能達到最優(yōu)時(最優(yōu)的性能一定是權衡各方面因素找到的平衡點)的最佳配置。
7、浪涌測試
驗證系統(tǒng)在某段時間內并發(fā)突增或請求量波動較大的情況下,系統(tǒng)能否正常穩(wěn)定的提供服務。
PS:這種測試策略使用的也相對較少,主要針對不確定性的短期的峰值流量涌入場景(比如某微博的離婚、戀愛、分手話題)。
8、穩(wěn)定性測試
以恒定的并發(fā)數(shù)(根據(jù)負載測試的結果,CPU使用率在70%時對應的并發(fā)數(shù)),驗證系統(tǒng)在混合場景下的性能表現(xiàn)。
9、批處理測試
驗證待測系統(tǒng)在既有環(huán)境下,系統(tǒng)的批處理(一般都是一個crontab或者觸發(fā)式的job)業(yè)務能力能否滿足生產的業(yè)務需求指標。
10、高可用測試
在集群多節(jié)點或分布式的情況下,破壞其中一個或多個集群節(jié)點,驗證系統(tǒng)能否及時恢復服務能力。
11、容錯恢復測試
驗證系統(tǒng)能否在出現(xiàn)故障的情況下仍能保持正常提供服務的能力或出現(xiàn)故障后的自我恢復能力。
施壓策略建議:
在前面的文章中,這塊有說過,不了解性能測試人員或者剛入門的性能人員,比如研發(fā)或者產品,在實際的工作中,可能習慣性的高并發(fā)的去壓,單臺機器壓測2000并發(fā)的也有見到過,這是不可取的。我們是為了找到系統(tǒng)最大處理瓶頸,這個需要一點點的并發(fā)往上加的,防止服務器太脆弱直接導致壓跪掉是很有必要的。
通過很多性能測試案例,發(fā)現(xiàn)不需要用上萬的用戶并發(fā)去進行測試,只要系統(tǒng)處理業(yè)務時間足夠快,幾百個用戶甚至幾十個用戶就可以達到目的。跟業(yè)界一些性能測試專家交流,接觸的性能測試項目,基本都沒有超過5000用戶并發(fā)。