Jmeter 性能測試的基礎瞭解

最近項目上在對網站和wap作性能優化(目標是支持200個併發,在登陸和課程詳情頁的相關操做),藉此機會學習性能測試html

1.瞭解性能測試的基礎知識前端

2.性能測試的流程;web

3.怎麼樣錄製腳本;數據庫

4.怎樣配置參數,實施壓測;性能優化

5.怎麼輸出報告;服務器

6.怎麼分析報告;網絡

一、《性能測試基礎知識》 https://www.cnblogs.com/imyalost/p/5640818.html架構

一、定義併發

對響應時間的評估、分析,結合應用的架構和實現細節找出問題,並最終確認問題獲得解決的過程 框架

二、影響軟件性能的因素

網絡環境、數據庫服務器、應用服務器、業務邏輯的實現方式、系統採用的架構、代碼的優化程度、使用者的使用方式等

三、測試模型

通用的軟件測試過程模型(PTGM)、敏捷軟件測試模型(ATPM)

四、軟件性能測試的應用領域 

能力驗證、規劃能力、性能調優、瓶頸發現、性能基準比較

 

一:基礎篇

一、軟件性能測試的基本概念

1.1 性能是一種指標(軟件性能對其及時性要求的符合程度)

    性能的及時性用響應時間或者吞吐量表示

    響應時間:對請求作出響應所須要的時間

例子:交互式的應用(web):用戶感覺到的響應時間

     非交互式的應用(嵌入式或者銀行等業務處理系統):系統對事件產生響應的time

1.1.1 用戶視角的軟件性能

端→端

用戶操做——數據操做請求——(應用服務器)服務端響應——返回數據——用戶端

1.1.2 管理員視角的軟件性能 

服務器資源使用情況是否合理                       資源利用率

數據庫資源使用情況是否合理                       資源利用率

系統可否能夠實現擴展                            系統可擴展性

系統的最大併發,壓力是多少                       

併發:最多能支持多少用戶訪問                     系統容量

壓力:最大的業務處理量

系統可能的瓶頸在哪裏                            系統可擴展性

更換什麼設備能提高系能                          系統可擴展性

可否支持7*24小時的業務訪問                      系統穩定性

1.1.3 開發視角的軟件性能 ???

架構設計是否合理                               系統架構

數據庫設計是否存在問題                          數據庫設計

代碼是否存在性能方面的問題                       代碼

系統中是否存在不合理的內存使用方式                代碼

系統中是否存在不合理的線程同步方式                設計與代碼

系統中是否存在不合理的資源競爭                   設計與代碼 

1.1.4 web前端性能

Web應用的前端響應時間:頁面加載時間

其中包括:

1.對HTML的解析讀取

2.對頁面圖片及CSS等文件的獲取和加載

3.客戶端腳本(JavaScript)的執行時間

4.對頁面進行展示所花的時間 

 

1.2軟件性能的幾個主要術語

1.2.1 

合理的響應時間取決於實際用戶需求

1.2.2 

併發用戶數:N數值的用戶同時訪問系統

1.服務器實際承受的壓力不僅取決於併發用戶數,還取決於用戶的業務場景

2.服務端承受的最大併發訪問數取決於併發用戶數+業務場景

業務場景:經過服務器日誌的分析得出的結果

1.2.3 吞吐量

定義:單位時間內系統處理客戶請求的數量

通常來講,請求數/每秒OR頁面數/每秒來衡量

從業務角度來講,訪問人數/天OR處理的業務數/小時來衡量(PV、UV)

從網絡角度來講,字節數/天來考察網絡流量 

對於交互式應用,吞吐量指標反映服務器承受的壓力,在容量規劃測試中,吞吐量是個很重要的指標,由於它能說明系統級別的負載能力

Web系統的性能測試中,吞吐量指標能夠在兩個方面發揮做用

1.協助設計性能測試場景,以及衡量性能測試場景是否達到預期的設計目標

2.協助分析性能瓶頸

PS:大部分性能測試中,單擊數(Hits)指客戶端發出的HTTP的請求數量,而不是指用戶在頁面上的一次單擊事件。

好比:一次單擊事件請求頁面A,頁面A包含3張圖片和一個框架(Frame),則此次單擊共產生了5個Hits(包括對頁面A自己的請求) 

1.2.4性能計數器(Counter)

定義:描述服務器或者操做系統性能的一些數據指標

做用:監控、分析

分析系統可擴展性,進行性能瓶頸的定位時,計數器取值很是關鍵

相關指標:資源利用率:系統各類資源的使用狀況 

1.2.5思考時間(Think Time)

休眠時間:用戶操做時間每一個請求的間隔時間

體如今腳本中,就是操做之間放一個Think函數,使腳本在執行兩個操做之間等待一段時間

  R=T/Ts   (請求數=時間/請求間隔時間)

推薦一個計算思考時間的方法:

1.首先計算出系統的併發用戶數

2.統計出系統平均的吞吐量

3.統計出平均每用戶發出的請求數量

4.根據上面的公式得出請求時間

 

二、《性能測試類型》  https://www.cnblogs.com/imyalost/p/5653342.html

一、負載測試(可置性測試)

定義:在被測系統上不斷增長壓力,直到性能指標(如響應時間)超過預期指標或者某種資源使用已經達到飽和狀態。能夠找到系統的處理極限,爲系統調優提供數據

特色:

1):該方法主要目的是找到系統處理能力的極限

2):該方法在給定的測試環境下進行,一般須要考慮被測系統的業務壓力量和典型場景

3):該方法通常用來了解系統的性能容量,或者是配合性能調優來使用

性能容量:系統在保證必定響應時間的狀況下可以容許多少併發用戶的訪問

二、壓力測試

定義:系統在必定飽和狀態下,例如CPU、內存等飽和狀況下,系統可以處理的會話能力,以及系統是否會出現錯誤

特色:

1)該方法通常經過模擬負載等方法,使得系統的資源使用達到較高的水平

2)該方法的主要目的是檢查系統處於壓力狀況下是應用的性能表現

   該方法經過增長訪問壓力,是系統資源使用保持在必定水平,檢驗此時應用的表現,重點在於有誤出錯信息產生,系統對應用的響應時間等

併發測試:簡單理解就是業務場景短期內有大量的請求須要處理,通常出如今登錄或者某些比較重要的模塊,按鈕

 

四、配置測試

定義:經過對被測系統軟硬件環境的調整,瞭解各類不一樣環境對系統性能影響的程度,從而找到系統各項資源的最優分配原則

特色:

1)該方法主要目的是瞭解各類不一樣因素對系統系能影響的程度,從而判斷出最值得進行的調優操做

2)該方法通常在對系統性能情況有初步瞭解後進行

   須要在肯定的環境、操做步驟和壓力條件下進行

3)該方法通常用於性能調優和規劃能力

 

五、併發測試

定義:模擬多用戶併發訪問同一個應用、模塊或者數據記錄時是否存在死鎖或者其餘性能問題

特色:

1)該方法主要目的是發現系統中可能存在的併發訪問時的問題

2)該方法主要關注系統中可能存在的併發問題。好比:內存泄漏、線程鎖和資源爭用等問題

3)該方法能夠在開發的各個階段使用,須要相關的測試工具的配合和支持

經常使用工具:商業軟件loadrunner:功能完整強大,內存佔用大,須要收費

        開源工具jmeter:開源免費,自由,操做較簡單,能輔助完成平常的一些測試工做

 

六、可靠性測試

定義:給系統施加必定的業務壓力,讓其持續運行一段時間,測試在這種條件下可否穩定運行

特色:

1)該方法的主要目的是驗證系統是否支持長期穩定的運行

2)該方法須要在壓力下持續一段時間的運行

3)測試過程當中須要關注系統的運行狀況

   好比:內存使用或者其餘資源的使用以及響應時間有無明顯變化

相關文章
相關標籤/搜索