天天看點

性能測試基礎

什麼是軟體性能?

軟體的性能是個很大的概念,覆寫面非常廣泛,對一個軟體系統而言,包括執行效率、資源占用、穩定性、安全性、相容性、可擴充性、可靠性等等。

使用者視角的軟體性能:

  • 從使用者角度來說,軟體性能就是軟體對使用者操作的響應時間

    管理者視角的軟體性能

  • 系統的響應時間;
  • 系統運作時伺服器的狀态,如CPU利用情況,記憶體使用情況等;
  • 系統是否能夠實作擴充;
  • 系統支援多少使用者通路;
  • 系統性能可能的瓶頸在哪裡;
  • 系統是否支援7*24小時的業務通路。

産品開發人員視角的軟體性能

  • 使用者關心的響應時間;
  • 管理者關心的系統可擴充性等;
  • 架構設計是否合理;
  • 資料庫設計是否合理;
  • 代碼是否存在性能方面的問題;
  • 系統中是否有不合理的記憶體使用方式。

什麼是軟體性能測試?

性能測試主要是通過自動化的測試工具模拟多種正常、峰值以及異常負載條件來對系統的各項性能名額進行測試!

性能測試的目的

評估系統的能力:測試中得到的壓力水準和響應時間資料可以用于驗證系統是否達到規劃時的水準。

識别體系中的弱點:将系統的壓力增加到一個極端水準,進而幫助發現系統薄弱環節并修複系統瓶頸。

驗證系統穩定性和可靠性:長時間的測試可能導緻程式發生記憶體洩露等引起的隐藏問題,在一個生産負荷下執行測試一定時間,評估系統可靠性是否滿足要求。

系統調優:重複執行性能測試,以驗證系統調優是否取得預期效果。

性能測試名額:

并發使用者數

并發是指在某一給定時間内,某個特定點上進行會話操作的使用者數。Virtual User,模拟真實業務邏輯步驟的虛拟使用者,虛拟使用者模拟的操作步驟都被記錄在虛拟使用者腳本裡。Vuser腳本用于描述Vuser在場景中執行的操作。

并發:

并發分為狹義和廣義兩類。

狹義的并發,即所有的使用者在同一時間做同一件事情,這種操作一般針對同一類型的業務或者所有使用者進行完全一樣的操作,目的是測試資料庫和程式對并發操作的處理。

狹義并發強調對系統的請求操作是完全相同的,多适用于性能測試、負載測試、壓力測試;

廣義的并發,即多個使用者對系統發出了請求或進行了操作,但這些請求和操作是不同的。對整個系統而言,仍然有很多使用者同時進行操作。

廣義并發不限制對系統的請求操作,多适用于混合場景、穩定性測試場景。

小結:

廣義并發:同一時間段内,對系統發起請求的數量

狹義并發:在同一時刻,對系統(伺服器)發起的相同請求的數量

請求處理失敗了也算并發,但在TPS、處理數量上不算

做性能測試的前提要保證請求的成功率(正确性)

行業内要求和錢相關的請求正确率要達100%

其他一般請求要求成功率99.99%

響應時間

響應時間指的是用戶端送出請求到得到響應的整個過程所經曆的。

指從用戶端發一個請求開始時,到用戶端接收到從伺服器端傳回的響應結果結束經曆的時間,響應時間由請求發送時間、網絡傳輸時間和伺服器處理時間三部分組成。

性能測試基礎

http協定就是通過浏覽器通路的響應時間包括前端頁面加載時間,但loadrunner裡不包含此部分時間。于是有了web前端性能測試之說

特别注意場景:大量樹狀結構容易出前端性能問題

注:并發和響應時間是互相關聯的,缺一不可

吞吐量

吞吐量是指機關時間内系統處理的客戶請求的數量,直接展現軟體系統的性能承載能力。

一般來說,吞吐量用請求數/秒或頁面數/秒來衡量,從業務的角度,吞吐量也可以用通路人數/天或處理的業務數/小時等機關來衡量。從網絡的角度來說,也可以用位元組數/天等機關來考察網絡流量。

資源使用率

資源使用率是指系統資源的使用程度,比如伺服器(網絡以及資料庫)的CPU使用率、記憶體使用率、磁盤使用率、網絡帶寬使用率等。

除了上述資源,我們還應該考慮資料庫連接配接池使用情況,JVM記憶體使用情況,sql執行效率等。

資源使用率:包含硬體(CPU、記憶體、IO、網絡)、整個架構包含的節點使用率、中間件線程池使用率、資料庫連接配接池使用情況,SQL執行效率,居民記憶體使用率,gc次數及時間,負載均衡伺服器資源使用率,緩存伺服器資源使用率、緩存key命中率

TPS

服務端:1秒鐘(機關時間内)伺服器處理的請求(事務)的數量

工具端(用戶端):多少并發使用者數(VU),響應時間是多少

性能測試的類型

随着壓力不斷增長,實測系統的資源會丌斷被消耗,TPS值會因為這些因素而發生變化,并且符合一定的規律。

  • 性能測試
  • 負載測試
  • 壓力測試
  • 穩定性測試/可靠性測試/疲勞測試
  • 容量測試
  • 網絡性能測試
性能測試基礎

圖中

a點:性能期望值

b點:高于期望值,系統資源處于臨界點

c點:高于期望值,拐點

d點:超過最大負載,系統崩潰

a點到b點之間的系統性能,指以系統預期性能名額為前提,對系統不斷增加壓力,以驗證系統能否達到預期性能。(單場景測試)

關注點:how much和how fast

含義:主要用于描述正常的性能測試,通過模拟生産運作的業務壓力和使用場景組合來測試系統的性能是否滿足生産要求。

目的:在特定的運作條件下驗證系統的能力狀況。

b 點的系統性能,是指對系統丌斷地增加壓力或增加一定壓力下的持續

時間,直到系統的某項或多項性能名額達到極限,例如某種資源已經達

到飽和狀态等。

關注點:how much

含義:壓力測試是為了發現在什麼條件下應用程式的性能會變得不可接受。

• 壓力測試不負載測試的比較

實作方法基本相同

測試的目的不同

• b 點到d之間的系統性能,是指超過安全負載的情況下,對系統不斷施加壓力,直到系統崩潰,确定系統的瓶頸或不能接收使用者請求的性能點。

含義

軟體可靠性: 在規定條件下,在規定時間内,軟體丌引起系統失效的機率

可靠性測試:在有使用代表性的環境中,持續運作系統某些功能,驗證系統穩

定性的過程

目的

盡量模拟客戶的使用環境,一定業務壓力下,持續運作過程N24小時,測試系統的穩定性

•a點到b點之間的系統性能,是指實測系統在接近生産環境的系統中,給系統加載一定于真實業務壓力相仿的壓力,使系統運作一段較長時間,以檢測系統是

否穩定,一般穩定性測試時間為N12小時。

繼續閱讀