性能測試的必備條件:
1.要是直接能連接到服務器的網絡。不要使用跳板機、堡壘機或者VPN等網絡連接方式,同時保證內外網分開。
因為我們要測試的是服務器的性能,這些東西會導致性能測試的結果受到很大的網絡延遲影響,導致性能測試結果不准確。
2.保證獨立環境。性能測試不能和功能測試共用一個環境。
保證功能測試和性能測試互不影響!
比如功能測試人員在測試某個功能,你在做性能測試的時候導致服務器出現問題。最后影響到功能測試人員的測試結果。
3.性能測試環境的服務器配置要與生產環境的服務器配置保持一致。
否則性能測試環境下測試出的指標值拿到生產環境下沒有說服力。
4.保證被測的服務器不能是集群。
如果被測服務器是集群,那么我們在做測試的時候,不能保證壓力分到了哪台服務器。
所以要保證是對一個服務器進行性能測試,而不是集群。
一、什么是性能測試?
通過自動化的測試工具模擬出多種正常場景、異常場景以及峰值負載場景條件下,對軟件系統的各項性能指標進行的測試!
舉例:12306搶票、秒殺活動、雙十一全天等。
二、性能測試的目的?
驗證軟件系統是否可以達到用戶提出的性能指標,同時發現軟件系統中的性能瓶頸,從而優化軟件系統。
一般來講會先進行理論上的性能測試,比如:要求一個接口每分鍾處理100條請求。
還有就是根據分析業務場景來開展性能測試。比如:500個用戶正在瀏覽商品,300個用戶正在參與秒殺,200個用戶正在付款的情況下,此時軟件系統的性能指標是否達到預期要求。這類混合場景的性能測試。
三、性能測試主要分哪幾類?
1.負載測試:模擬實際軟件系統所承受的負載條件,通過不斷加載或者其他加載方式來找出性能指標變化的拐點。
以檢驗系統的行為和特性,以發現系統可能存在的性能問題,以預估出系統的大概的一個性能指標(並發數)。
關鍵詞:不斷加載(逐步加壓)
2.壓力測試:模擬一定負載條件下長時間的運行,軟件系統是否能夠正常、穩定的運行,系統的各項性能指標是否處在預期的范圍之內。同時也可以測試系統是否具有良好的容錯能力和恢復能力。
壓力測試還分為:高負載下長時間的穩定性壓力測試 和 極限負載情況下可能導致系統崩潰的破壞性測試
也可以稱之為“穩定性測試”。
通過負載測試得出的性能指標(並發數)作為壓力測試的負載條件。
關鍵詞:大壓力 + 長時間 (最小以小時為單位)
3.容量測試:確定系統的最大承受量。例如:系統的最大用戶量,最大存儲量、最大的處理數據量。
四、性能測試的指標?
1.響應時間(Response Time):t1+t2+t3+t4
time1:客戶端——服務器(發送請求)
time2:服務器處理時間
time3:數據庫處理時間
time4:服務器——客戶端(返回數據)
2.並發\並發數\並發用戶數( Concurrent users):一定時間內向服務器發送的請求用戶數
a.同一時間在做相同事情的並發(單接口性能測試)
b.同一時間在做不同事情的並發(混合業務場景測試)
所以說,一般先做 單接口的性能測試,然后再做 單業務性能測試,最后做 混合業務場景的性能測試。
3.TPS(Transaction per Second):系統每秒處理的事務數
TPS越高,表示服務器處理能力越好。
QPS:每秒查詢數
這也是在做性能測試時,最重要的一個指標值。
4.吞吐量:事務/s,kb/s
在不受網絡延遲影響的情況下,吞吐量是和TPS值相等的。
5.資源利用率:主要包括CPU、內存、磁盤、I/O(換入/換出)
一般都要求不會超過80%,占用率越低,表現越好。