天天看點

伺服器壓力測試_性能測試思路及流程整理總結

伺服器壓力測試_性能測試思路及流程整理總結

軟體性能測試的目标

1、測試系統的最佳使用者數(随着使用者數量的增多系統的響應時間并沒有受到影響,直到某個數量的使用者數響應時間開始明顯增長)

2、測試系統的最大使用者數(随着使用者數量的增多,系統的響應時間開始延遲,直到某個數量的使用者數時,系統開始響應失敗或崩潰)

3、a、找到目前系統的性能瓶頸(依次測試系統的資料庫、服務層各個接口、直到web端,分析找到最大使用者數值最小的那幾個部分,即是系統的瓶頸)

b、找到軟體以外的性能瓶頸則可以在廣域網中進行測試,結合軟體的測試資料分析網絡和硬體!

4、系統的穩定性測試(較高數量的使用者持續通路系統較長的時間長度,期間系統一直能有效響應,并沒有明顯的響應時長起伏或當機)

注:本人在實際測試過程中發現,目前所測試的系統的響應時長是随着使用者數量的增多正比例增加的,并沒有一個增長點的存在;響應失敗的出現也并非不常見,在資料量很小的情況下,就有可能出現偶爾失敗的情況,當資料量很大時,響應失敗的情況并沒有顯著增加。這也許跟本公司的架構處理機制有關系,具體問題具體分析,不可拘泥于教條。

性能測試的環境因素:

1)硬體環境

伺服器硬體配置,用戶端的硬體配置,如:CPU記憶體等

2)軟體環境

系統的架構,前端、中間件、伺服器(這裡指運作系統軟體伺服器,如tomcat)、資料庫,以及他們的部署位置。用于加壓的用戶端采用什麼性能測試工具進行加壓。

3)網絡環境

網絡環境很重要。在上面的幾個目的中,除了找出系統性能瓶頸可以在廣域網進行,因為這個目的可以不用設定太多的虛拟使用者,隻要找出系統哪個地方影響了整個系統的性能就行。 其他目的的測試都需要在,區域網路進行,不然你壓力工具所發送的請求都會卡死在網絡的傳輸過程中。

确定系統的壓力點:

我們需要對系統的哪個頁面或業務進行加壓。系統的首頁?系統的登入?還是系統的交易過程?各個業務的使用者比例是多少?隻有獲得有效的性能需求,才容易尋找和定位壓力點

并發的兩種情況:

1、所有的使用者在同一時刻做同一件事或操作,這種操作一般指做同一類型的業務。比如,所有使用者同一時刻做并發登入,同一時刻做表單送出。

2、多個使用者對系統發出了請求或者進行了操作,但這些請求或操作可以是相同的,也可以是不同的。比如,在同一時刻有使用者在登入,有使用者在送出表單。

測試思路:

測試最佳使用者數和最大使用者數的思路:(有點黑盒性能測試的感覺)

1、首先分析壓力點,通過直接錄制腳本的方式錄制出想要的腳本,比如要測試靜态頁面則錄制靜态頁面的腳本,要測試登陸則錄制登陸的接口,要全系統分析則錄制全系統所有功能的腳本。

2、處理讓腳本可以按照自己的思路(設計何種并發、添加哪些測試元件、壓力點的設定)順利執行。要注意屏蔽圖形驗證碼,以及1.6jdk不支援https控件等常見問題,具體問題具體分析解決。

3、執行腳本分析資料。

性能瓶頸測試思路:(有點白盒性能測試的感覺)

1、首先要熟悉軟體的架構,比如:web--服務層--DB。

2、根據軟體的架構采用從前往後或從後往前的測試思路逐層測試,在測試服務層的每個接口時需要知道内部接口的入參、出參手動編輯腳本。這一步也叫接口性能測試。

3、分析測試資料,主要對web前端的性能、每個接口的性能、資料庫性能等進行分析,對中間件如:redis、nginx、tomcat,以及資料庫要能夠簡單調優。最終将測試結果回報給對應開發負責人。

穩定性測試:

這裡與最佳使用者數以及最大使用者數的測試方法類似,使用者數設定為最佳使用者數與最大使用者數之間的多組資料,将線程設定為循環,指定循環時間為12小時以上。

測試資料的分析:

1、Work Load = Virtual Users 工作負荷 = 虛拟使用者數

對伺服器産生多大壓力,可以由多少使用者同時對伺服器發送請求來衡量。也就是伺服器的性能可以看它同時處理多少使用者發送來的請求來衡量。

虛拟使用者數可以用程序或線程的方式進行模拟。

2、response time 響應時間

從用戶端将資料包發出,到接收到伺服器端發來的請求。這個過程的總體時間叫response time

這個時間用來衡量的處理請求的速度(抛出網速限制的前提下)

3、Response/Successful Response 響應/成功的響應

4、throughput---Ti & To 吞吐率

"吞吐率”,就是機關時間的吞吐量,比如吞吐量/秒。

站在伺服器端,T-in表示“吞”;T-out表求“吐”

Ti:T-in 主要衡量用戶端的能力,看用戶端往伺服器發送的請求資料包的吞吐率。

To: T-out 主要衡量的伺服器端的能力,看伺服器處理傳回請求資料包的吞吐率。

在整個性能測試過程中,自動化測試工具的選擇隻能影響性能測試執行的複雜程度,簡便一些或繁雜一些;但人的分析和思考卻會直接導緻性能測試的成敗。是以本篇着重于對性能測試思路的整理,歡迎加群617089523一起交流學習更多測試内容,進階測試大牛。