談到效能測試就不得不說壓力、負載測試,其實叫法有很多種,而且他們所用到的工具以及關注的指標大致相同,所以很容易混淆。太難了!先舉個最通俗易懂的例子:
舉例: 乙個人扛x斤
負載測試:200斤情況下,能否堅持5分鐘。(滿足最基本的要求)
壓力測試:200,300,400…情況下,他的表現,什麼時候失敗,失敗之後什麼表現,重新扛200是否正常。(最大承受的條件)
容量測試:在堅持5分鐘的情況下,他一次最多能扛多少斤。
負載測試:
負載測試是通過逐步增加系統負載,測試系統效能的變化,並最終確定在滿足效能指標的情況下,系統所能承受的最大負載量的測試,這裡我們可以根據《loadrunner沒有告訴你的》中哪一條效能的曲線來理解,那條曲線有兩個拐點,第乙個拐點時達到最佳併發數的時候,第二個拐點是達到最大併發數的時候,這時候仍沒有超過我們設定的最大響應時間,在增加的時候,效能就開始下降了,出現了大量的超時情況
理解就是負載測試是測試出第二個拐點,此時系統仍然維持著最佳狀態!
壓力測試
如上圖,繼續增加併發或者使用者數就是我們的壓力測試了,假設我們規定我們業務的相應時間不能夠超過圖中標識的點,一旦超過這個點,錯誤率等指標就不可被接受,那麼如何測試出來這個點,這就是壓力測試,並最終確定在什麼負載條件下系統效能處於失效狀態,並以此來獲得系統能提供的最大服務級別的測試。通俗地講,壓力測試是為了發現在什麼條件下系統的效能會變得不可接受。
效能測試中關注的關鍵指標
軟體效能測試的目的主要有以下三點:
1.評價系統當前效能,判斷系統能否滿預期的效能需求
2.尋找軟體系統可能存在的效能問題,定位效能瓶頸並解決問題。
3.判定軟體系統的效能表現,預見系統負載壓力承受力,在應用部署之前,評估系統效能
對於使用者而言,則更關注當前系統的:
1.能否滿足上線效能要求
2.系統極限承受如何
3.系統穩定性如何
而我們關注的指標大概可以分為兩類
說一下磁碟i/o:
磁碟主要用於訪問資料,因此當說到io操作的時候,就會存在兩種相對應的操作,存資料的時候對應的是寫io操作,取資料的時候對應的是讀io操作,一般使用%disktime(磁碟用於讀寫所佔的時間百分比)度量磁碟讀寫效能。
如何分析監控的關鍵指標?
**判斷cpu是否是瓶頸的方法:**一般情況下cpu滿負荷工作,有時候並不能判定為cpu出現瓶頸,比如linux 總是試圖要cpu盡可能的繁忙,使得任務的吞吐量最大化,即cpu盡可能最大化使用。因此,一般判斷cpu為瓶頸,主要從兩方面:一是cpu空閒持續為 0,二是執行佇列大於cpu核數(經驗值3-4倍),即可判定存在瓶頸,對於cpu高消耗主要由什麼引起的,可能是應用程式不合理造成,也可能是硬體資源 不足,需要具體問題具體分析,比如問題sql語句引起,則需要跟蹤並優化引起cpu使用過高的sql語句。
**判斷記憶體是否是瓶頸的方法:**一般至少有10%可用記憶體,記憶體使用率可接受上限為85%。當空閒記憶體變小時,系統開始頻繁地調動磁碟頁面檔案,空閒記憶體過小可能是記憶體不足或記憶體洩漏引起,需要根據系統實際情況監控分析。
**判斷磁碟i/o是否是瓶頸的方法:**磁碟i/o對於資料庫伺服器、檔案伺服器、流**伺服器系統來說,更容易成為瓶頸,一般從以下幾個方面對磁碟i/o進行分析判斷:
① 計算每磁碟i/o數
② 監控磁碟讀寫,如果磁碟長時間進行大資料量讀寫操作,且cpu等待超過20%,則說明磁碟i/o存在問題,考慮提高磁碟i/o讀寫效能。
說說實際情況
針對接觸到的實際的業務,大家一般第一要求的都是說相應時間不能超過多少毫秒,其次才是tps或者說併發數,因為這三者的關係是有計算公式的。
假如我們要求我們的介面相應時間不超過200ms,那麼這tps是多少嘞?1000/200=5/s,在系統可以正常運轉的情況下我們假如要求是100個併發下,相應時間不大於200ms,那麼此時的tps是多少?(5/s)*100 = 500/s,如果實際的壓力測試情況滿足這個條件且其他監控指標正常,那麼我們則可以認為這個介面滿足條件,如果在測試過程中發現100個併發的時候,相應時間嚴重超時了 達到了500ms,那麼再計算tps (1000/500)再乘100 = 200/s,首先相應時間不符合表均,進而tps即使計算出來也沒有太大的意義。這個時候就需要進行效能分析了,或者逐步減少併發數來獲取響應時間開始下降的拐點!
(一)效能測試(壓力測試 負載測試)
一 專案經理經常安排測試工程師進行下面的工作 二 效能測試概念 三 負載測試 四 壓力測試 五 壓力測試與負載測試兩者區別 相同點 都是效能測試 負載測試強調系統正常工作情況下的效能指標 壓力測試的目的是發現在什麼條件下系統的效能變得不可接受,發現應用程式效能下降的拐點。舉例 工人建橋,橋身上表明,...
效能測試 壓力測試 負載測試
負載測試 load testing 壓力測試 stress test,應稱為強度測試 和效能測試,這三個概念常常引起混淆,難以區分,從而造成不正確的理解和錯誤的使用。負載測試 壓力測試和效能測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所...
記一次壓力測試
壓力測試方式 1 jmeter單獨使用測試 2 先用badboy生成.jmx檔案,在用jmeter匯入,執行 1.建立執行緒組 指定執行緒數,迴圈次數 2 建立http請求,這裡使用的本地測試 3 可以建立定時器,輸入模擬使用者數量 4 建立報告,結果樹等 隨意 然後先用tomcat預設配置跑一次,...