性能測試

一. 定義

性能測試是經過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試壓力測試都屬於性能測試,二者能夠結合進行。經過負載測試,肯定在各類工做負載下系統的性能,目標是測試當負載逐漸增長時,系統各項性能指標的變化狀況。壓力測試是經過肯定一個系統的瓶頸或者不能接受的性能點,來得到系統能提供的最大服務級別的測試。html

執行時間點:通常而言,只有在系統基礎功能測試驗證完成、系統趨於穩定的狀況下,纔會進行性能測試,不然性能測試是無心義的。linux

二. 類型

  • 基準測試:比較新的或未知測試對象與已知參照標準(如現有軟件或評測標準)的性能。

  • 負載測試:是肯定在各類工做負載下系統的性能,目標是測試當負載逐漸增長時,系統組成部分的相應輸出項,例如經過量、響應時間、CPU負載、內存使用等來決定系統的性能。(模擬真實環境的使用)
  • 壓力測試:是經過肯定一個系統的瓶頸或者不能接收的性能點,來得到系統能提供的最大服務級別的測試。壓力測試是評估系統處於或超過預期負載時系統的運行狀況,關注點在於系統在峯值負載或超出最大載荷狀況下的處理能力。
  • 併發測試:測試多個用戶同時訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其餘性能問題。併發性能測試的過程是一個負載測試壓力測試的過程,即逐漸增長負載,直到系統的瓶頸或者不能接收的性能點,經過綜合分析交易執行指標和資源監控指標來肯定系統併發性能的過程。目的主要體如今三個方面:以真實的業務爲依據,選擇有表明性的、關鍵的業務操做設計測試案例,以評價系統的當前性能;

  • 穩定性測試:在給系統加載必定業務壓力的狀況下,使系統運行一段時間,以此檢測系統是否穩定。

三. 指標

1.響應時間服務器

從用戶發送一個請求到用戶接收到服務器返回的響應數據這段時間就是響應時間。其中包括網絡時間和程序處理時間。
網絡

響應時間=網絡時間+請求處理時間併發

2.每秒事務處理數(TPS,TransactionPerSecond)工具

每秒鐘系統可以處理的交易或事務的數量。它是衡量系統處理能力的重要指標。
性能

3.併發量測試

某一時刻同時向系統發送請求的用戶數.net

4.資源利用率線程

指的是對不一樣系統資源的使用程度,主要關注的是服務器資源的使用狀況,以下:

(1)CPU使用率

CPU當前使用程度,是否處於飽和,是否達到瓶頸

(2)內存

內存使用狀況

(3)磁盤IO

對磁盤的讀寫狀況,當對磁盤讀寫過於頻繁,會致使大量請求處於IO等待的狀態。

(4)服務器負載

負載(load)是linux機器的一個重要指標,直觀了反應了機器當前的狀態。

在UNIX系統中,系統負載是對當前CPU工做量的度量,被定義爲特定時間間隔內運行隊列中的平均線程數。load average 表示機器一段時間內的平均load。這個值越低越好。負載太高會致使機器沒法處理其餘請求及操做,甚至致使死機。

Linux的負載高,主要是因爲CPU使用、內存使用、IO消耗三部分構成。任意一項使用過多,都將致使服務器負載的急劇攀升。

具體的關於服務器負載分析和問題排查能夠參考下面這篇博客

https://blog.csdn.net/wufaliang003/article/details/80400385

(5)網絡帶寬

當收發包的吞吐率即將到達網卡最大上限,網絡數據報文有丟包和阻塞現象,考慮網絡是否存在瓶頸。

四 指標之間的關係


這張圖中展現的是1個標準的軟件性能模型。在圖中有三條曲線,

綠色:表示資源的利用狀況(Utilization,包括硬件資源和軟件資源)

紫色:吞吐量(Throughput,這裏是指每秒事務數)

藍色:響應時間(Response Time)

橫座標:併發用戶數(Number of Concurrent Users),左到右表現了併發用戶數的不斷增加

在這張圖中咱們能夠看到,最開始,隨着併發用戶數的增加,資源佔用率和吞吐量會相應的增加,可是響應時間的變化不大;不過當併發用戶數增加到必定程度後,資源佔用達到飽和,吞吐量增加明顯放緩甚至中止增加,而響應時間卻進一步延長。若是併發用戶數繼續增加,你會發現軟硬件資源佔用繼續維持在飽和狀態,可是吞吐量開始降低,響應時間明顯的超出了用戶可接受的範圍,而且最終致使用戶放棄了此次請求甚至離開。

根據這種性能表現,圖中劃分了三個區域,分別是Light Load(較輕的壓力)、Heavy Load(較重的壓力)和Buckle Zone(用戶沒法忍受並放棄請求)。在Light Load和Heavy Load 兩個區域交界處的併發用戶數,咱們稱爲「最佳併發用戶數(The Optimum Number of Concurrent Users)」,而Heavy Load和Buckle Zone兩個區域交界處的併發用戶數則稱爲「最大併發用戶數(The Maximum Number of Concurrent Users)」。當系統的負載等於最佳併發用戶數時,系統的總體效率最高,沒有資源被浪費,用戶也不須要等待;當系統負載處於最佳併發用戶數和最大併發用戶數之間時,系統能夠繼續工做,可是用戶的等待時間延長,滿意度開始下降,而且若是負載一直持續,將最終會致使有些用戶沒法忍受而放棄;而當系統負載大於最大併發用戶數時,將註定會致使某些用戶沒法忍受超長的響應時間而放棄。

本文參考

1.http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html

2.https://www.cnblogs.com/puresoul/p/5456855.html

3.https://blog.csdn.net/wufaliang003/article/details/80400385

相關文章
相關標籤/搜索