性能測試綜述

1、瞭解性能測試ios

性能測試是不斷的經過不一樣場景的系統表現去探究系統設計與資源消耗之間的平衡。網絡

咱們能夠認爲性能測試是:經過在測試環境下對系統或構件的性能進行探測,用以驗證在生產環境下系統性能是否達到預估的性能需求,發現系統可能存在的性能瓶頸,進而改善優化並系統的性能,提升系統的可擴展性、穩定性。運維

從上面的描述能夠看出,性能測試的主要工做包括:得到預估的性能需求、搭建測試環境、執行測試、分析測試結果。其中,最爲重要兩個工做是肯定測試的目的、方案,並對結果進行分析。工具

2、確認測試目的性能

性能測試的需求包含但不限於用戶的需求。在性能測試前咱們一樣須要充分了解開發、運維對系統的關注點。此外,要對被測模塊的設計有深刻了解,基本判斷該模塊是cpu密集型或是io密集型。以上這些是爲更確立測試的目的,並有針對性的梳理測試方案和分析作好準備。測試

性能測試的目的包括:優化

(1)驗證系統是否知足預期需求;操作系統

(2)驗證系統在高壓下的表現;設計

(3)驗證系統是否能持續穩定的運行;日誌

(4)探測系統的瓶頸和產生瓶頸的緣由;

(5)探測系統設計與資源之間的最佳平衡,改善並優化系統的性能。

3、確認測試方案

根據性能測試目的的不一樣,所實施的測試方案也不一樣。

通常,性能測試主要包括以下幾種:

1)驗證系統在預估負載下的表現:負載測試

2)驗證系統在極端負載下的表現:壓力測試

3)驗證系統是否能持續穩定的運行:穩定性測試

如下是對上述三種測試的圖示。通常,常態負載低於瓶頸負載,從常態負載到瓶頸負載區間系統的承受能力能夠看做是可擴展能力。當瓶頸負載小於等於常態負載時,說明該系統的性能沒有知足預計要求,是存在問題的。探測常態負載與瓶頸負載的關係,正是負載測試所要完成的工做。壓力測試則驗證從系統到達瓶頸以後,繼續持續加壓時系統的表現。

根據性能測試的目的,選擇是進行負載、壓力、穩定性測試仍是幾種測試。每種測試中通常會安排幾個場景,場景的變換主要根據壓力值、系統配置等參數而改變。首次測試一把根據預估的性能需求和經驗值開決定,後續的測試場景依賴於首次測試的各項指標的特徵。例如,首次測試後,發現系統的性能很好,徹底知足預期且機器各項負載指數很低,後續能夠考慮n倍壓力值探測系統瓶頸。若是首次測試的結果表現出不能知足預期,則須要調整各參數值進行測試,經過比較個參數值下的性能表現來分析系統瓶頸。

4、準備環境數據

1 搭建測試環境

什麼是測試環境?測試環境=軟件+硬件+網絡+數據+測試工具。

原則1 以假亂真

軟、硬件配置要與生產環境的配置一致,若是條件有限,則要儘可能逼近於生產環境的真實條件。同時,要保證測試工具的穩定性。若是性能測試環境不夠真實、穩定,則測試的結果的可靠性沒法知足。

原則2 以靜制動

通常,咱們將壓力程序、被測模塊部署在不一樣的機器上。(即使是生產環境中壓力來自於被測模塊所在的機器,咱們通常也是分開部署;這是保證被測模塊的乾淨,避免對測試結果的干擾)。所以信息交互是經過網絡來完成的。保證環境乾淨的另外一個緣由是,通常線上部署是多模塊統計部署,在線下沒有必要搭建通線上同樣的模塊,所以使用一套乾淨的環境進行測試,能夠在後期分析中引入多模塊統計部署的因素進來,推算上線後的效果。

2 準備測試數據

原則3 以小見大

測試數據是測試環境的一部分,但與環境不一樣,測試數據很難達到與生產環境如出一轍。一方面,生產環境的數據是動態、持續變化的,而測試中咱們須要的數據是靜態的,咱們沒法保證數據的實時性;另外一方面,生產環境的數據是龐大的,而測試環境中數據量是有限的。

在數據準備中既要關注數據的質、又要關注量。

1)質——指數據的頻率、分佈要儘量和線上一致。

2)量——指數據的規模要達到、接近或者超過線上現有水平。

一般,能夠採用同比例縮放或擴放的方式,即便用過去一段時間的生產環境數據來進行測試。通常能夠保證數據的頻率、分佈和真實環境中是一致的。

5、性能指標分析

1 性能指標的關注

性能測試的指標可分爲產品指標和資源指標兩類。對測試人員而言,性能測試的需求來自於用戶、開發、運維的三方面。用戶和開發關注的是與業務需求相關的產品指標,運維關注的是與硬件消耗相關的資源指標。

1)從用戶角度關注的指標:用戶關注的是單次業務相關的體驗效果,譬如一次操做的響應快慢、一次請求是否成功、一次鏈接是否失敗等,反映單次業務相關的指標包括:

(1)成功率=成功響應次數/統計時間

(2)失敗率=失敗響應次數/統計時間

(3)響應時間

2)從開發角度關注的指標: 開發人員更關注的是系統層面的指標。

(1)容量:系統可以承載的最大用戶訪問量是多少?系統最大的業務處理量是多少?

(2)穩定性: 系統是否支持7*24小時(一週)的業務訪問?

3)從運維角度關注的指標:運維人員更關注的是硬件資源的消耗狀況。

須要注意的是,在預估性能壓力和指標時,須要給線上運維操做留有必要的性能空間。

其中,資源消耗每每是制約產品指標的重要因素,是咱們在性能測試中須要特別關注的指標。資源消耗包括CPU、內存、硬盤、網絡帶寬等。

2 性能指標的統計

1) 單次業務相關的指標能夠經過統計日誌信息來計算。

2) 連續業務相關指標須要從長時間、高壓力的性能中統計和分析。

3) 資源消耗指標能夠經過監控進程佔用的資源、機器系統的資源變化來觀測。

其中,常見的性能分析工具備vmstat、top、free、iostat等。

3 性能指標的分析

指標分析的原則是「具體問題具體分析」,可是總的方法是盯住單場景,觀察各項指標變化趨勢;針對多場景,分析不一樣參數下的變化。須要注意到是,操做系統老是儘量的去使用CPU和內存等資源,所以CPU滿負荷或者內存free較小並不能說明該資源出現不足。

在判斷資源短缺和瓶頸時須要綜合分析資源間的制約關係,並觀察各個資源值的變化。下面主要對資源消耗的各個指標進行分析。

其中,資源間的制約關係:

1)物理內存不夠時會使用交換內存,使用swap會帶來磁盤I0和cpu的開銷。

2)Linux能夠利用空閒內存做文件系統訪問的cache,所以系統內存越大存儲系統的性能也越好。

6、總結

但願這份總結對你們有所幫助,總結是必要的,但僅僅是總結而已。我的理解,性能測試是一門意會大於言傳的測試。屢試不爽、受益不淺。

相關文章
相關標籤/搜索