性能測試:是指在特定狀況下測試系統如何執行的。資源的使用、可擴展性和可靠性也是性能測試的範疇。性能測試是性能工程的一個子集,主要發現軟件架構以及設計致使的性能問題。瀏覽器
性能測試的目標:主要目標是測出系統運行的性能指標基線,咱們在測試中也可能測試一些業界定義的性能指標基線。性能測試的目的不是尋找應用程序的缺陷,它更加劇要的目的是
測試基線以及程序的標準性能。性能測試特徵就是關注測試性能測試的結果 以及持續的監控。多線程
性能測試工具分類架構
性能測試工具主要包括服務端性能測試工具和客戶端性能測試工具。本次培訓側重於服務端性能測試的講座併發
服務端性能測試工具工做原理分佈式
服務端性能測試工具仿真度高併發
協議模擬:是性能測試工具直接模擬客戶端向服務端下發的請求協議。
客戶模擬 :是性能測試工具間接的模擬客戶向服務端下發的請求協議,它是經過驅動客戶端界面操做,由
客戶端程序向服務端下發請求協議。工具
性能測試工具工做原理:協議模擬性能
對於消費者用戶,常常使用瀏覽器上網,而後在地填欄中輸入網址,而後回車,便可看到想要看的網站頁信息。可是就這樣一個小小的回車操做,瀏覽器爲了把網頁展示在用戶面前,須要調用大量的HTTP請求。這些請求之間是併發的(HTTP1協議,瀏覽最高支持6個併發。HTT2協議,瀏覽器能夠併發到100-200)。經過這些HTTP請求來得到頁面上的各類顯示元素(圖片、按鈕、表格等)。你們能夠在打開瀏覽器按F12按鈕並切換到network 頁面,能夠查看到瀏覽器下發HTTP請求的瀑布圖。
每個終端用戶的操做都是一個瀑布圖,下圖是三個終端用戶座標圖,用以說明服務端與客戶端之間的關係,以及客戶端的瀑布圖對服務端產生壓力的原理性說明。
性能測試工具對服務端進行性能測試,首先要作的就是先仿真單個用戶,再經過單個用戶延伸出多個用戶。多個用戶模擬,性能測試工具大部分採用多線程實現,一個線程經過執行HTTP腳本仿真一個用戶,用戶的併發請求,線程經過併發執行HTTP請求實現。學習
性能測試工具協議模擬仿真能力對比測試
目前業界的性能測試基本都以協議協議模擬爲主,只有kylinTOP測試與監控平臺同時支持協議模擬和客戶模擬兩種方式。這兩種方式的優缺點上面也介紹了。下面咱們重點看一下協議模型仿真度對比狀況。從下圖看只有「kylinTOP測試與監控平臺」提供的協議的精準度最高。
性能測試工具的架構圖
一款好的性能測試工具的應當是分佈式系統。目前業界大部分性能測試工具都是C/S架構(如:loadRunner ,Jmeter),kylinTOP測試與監控平臺架構是採用B/S架構。
可是它們都有一個共同的特徵,執行器(用於性能執行腳本)能夠分佈在多臺機器上,用於支撐高併發的場景。下圖是以kylinTOP測試與監控平臺爲原型的系統架構圖,以供你們學習和加深理解性能測試工具的體系結構。
性能測試工具基本操做步驟
下圖以"kylinTOP測試與監控平臺"性能測試的基本操做爲原型畫出的一張性能測試的基本流程。其它性能工具的操做流程基本類似。它們之間的差別點主要體如今對每一個操做小步驟的能力支撐的程度的高低。