1. 程式人生 > >Jmeter入門②——壓力測試

Jmeter入門②——壓力測試

目錄

前言

操作

前言

壓力測試是通過確定一個系統的瓶頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試。應用在客戶端效能測試的目的是考察客戶端應用的效能,測試的入口是客戶端。對應剛入門的我們來說,暫且主觀一點斷章取義就是併發效能測試。

壓力測試,我們首先需要了解下壓力測試的指標以及目標。主要是吞吐量、響應實踐、錯誤率。

  • 吞吐量:官方定義是【吞吐量是指對網路、裝置、埠、虛電路或其他設施,單位時間內成功地傳送資料的數量(以位元位元組、分組等測量)】。對應壓測來說,就是每秒鐘系統能夠處理的請求數、任務數

  • 響應時間:官網定義是【響應時間指使用者發出請求或者指令到系統做出反應(響應)的時間。】。我們可以理解為服務處理一個請求或一個任務的耗時

    。通常吞吐量越大(每秒鐘系統處理的請求越多),響應時間越長。

  • 錯誤率:一批請求中結果出錯的請求所佔比例。

壓測中,我們先回從需求中得到這些指標的目標值,然後我們壓測的時候就設定相應的指標慢慢增加、達到、超過這些目標值來進行測試(設計測試用例),來分析系統是否符合系統要求。這些後面我們介紹操作的時候也會簡單介紹這幾個指標在Jmeter裡面是怎麼設定的。

操作

(一)介面文件

簡單起見,我們就用一個add介面進行測試。可以把它想作是一個申請介面,主要是功能其實就是新增一條客戶申請資訊。

(二)新增執行緒組

(1)選擇測試計劃,右鍵【新增-執行緒-執行緒組】;

初學者可以先對這些引數的作用有個大概瞭解,如果看不懂也暫且不必深究。後面慢慢實踐起來就能知道這些引數的具體意義了。

  • 在取樣器錯誤後要執行的操作:平時很少用到,預設都選擇【繼續】。

繼續:如果取樣器裡的執行出現錯誤失敗的時候,請求不會停止,繼續執行。

啟動下一程序迴圈: 忽略錯誤,執行緒當前迴圈錯誤,執行下一個迴圈。

停止執行緒 :只限當前執行緒停止,不影響其他執行緒執行

停止測試 :當前執行的執行緒全部執行完畢後結束

立即停止測試: 立刻停止

  • 執行緒數:顧名思義,就是執行緒個數,即併發執行緒個數。可以理解為使用者數,就是有多少個人同時訪問某一個HTTP請假(介面)。
  • Ramp-Up時間(秒):執行緒啟動開始執行的時間間隔,單位秒。即所有執行緒在多長時間內全部啟動。例如執行緒60個,Ramp-Up 時間設定為20s,那麼每秒啟動60/20=3個執行緒,不填寫預設設定為0,即所有執行緒在開啟場景後立即啟動。
  • 迴圈次數:勾選【永遠】,將一直執行,除非手動停止或崩潰。如執行緒數為1,迴圈2次,即一個人一直調2次這個/這些請求。
  • 延遲建立執行緒到需要:預設不勾選,是指不需要延遲建立執行緒,預設執行時就建立。勾選之後即延遲建立執行緒,到需要的時候再建立。我暫且也還不算很瞭解這個引數的用法。以下是其他說法,可以參考以下:延時建立執行緒直到該執行緒需要取樣時。勾選,例如50個執行緒Ramp-Up Period為10s,那麼每隔1s啟動50/10=5個執行緒並執行下面的請求(狀態為running);不勾選,測試計劃開始後啟動所有執行緒(狀態為new),但是不立即執行下面的請求。例如50個執行緒Ramp-Up Period為10s,那麼計劃開始後所有執行緒全部就緒,但第一秒只有5個執行緒開始執行請求。實際應用中選擇哪種都可以,不影響測試結果。——【來源:https://blog.csdn.net/qingdiao/article/details/80995290
  • 排程器配置:勾選則可配置【持續時間(秒)】、【啟動延遲(秒)】
  • 持續時間(秒 ):持續時間,測試計劃持續多長時間。——只針對迴圈次數為【永遠】時有效;
  • 啟動延遲(秒):啟動延時。點選啟動按鈕後,僅初始化場景,不執行執行緒,等待延時時間到才執行。

(2)設定執行緒組的引數。當然我們也可以先把後面的步驟先做好了再返回來改。這都是無關緊要的。

如下:設定執行緒數=10;Ramp-Up時間(秒)=3,迴圈次數=2;意思就是我需要3秒內發起10個執行緒,每個執行緒迴圈2次。

(三)新增HTTP請求

(1)選擇執行緒組,右鍵【新增-取樣器-HTTP請求】:

(2)根據介面文件填入相關值:協議、伺服器名稱或IP、埠號、請求方法、路徑、內容編碼、訊息體資料

(3)POST請求需要新增資訊頭:選擇HTTP請求,右鍵【新增-配置元件-HTTP資訊頭管理器】:

(4)新增資訊頭引數以及傳入值(一般介面文件有明確規定)

(三)新增察看結果樹

(1)選擇測試計劃,右鍵【新增-監聽器-察看結果樹】

(四)新增聚合報告

(1)選擇測試計劃,右鍵【新增-監聽器-聚合報告】

(五)儲存、執行、察看結果樹&聚合報表

(1)察看結果樹,可以看到http請求次數、結果。

(2)聚合報告:通過聚合報告,我們可以看到我們想要的結果,包括吞吐量、錯誤率、響應時間;

Label:每個JMeter的請求的Name值。例如HTTP Request的Name。

Samples:發出請求數量。如果之前執行緒組中配置的是,執行緒數為10,迴圈次數為2,則總的數量為20.

Average:平均響應時間(單位:ms)。預設是單個請求(Request)的平均響應時間,當使用了事務處理控制器(Transaction Controller)時,也可以以事務為單位顯示平均響應時間。

Median:中位數,也就是 50% 使用者的響應時間。

90% Line、95% Line、95% Line:大部分使用者(90%、95%、99)的響應時間。因為在評估一次測試的結果時,僅僅有平均事務響應時間是不夠的。假如有一次測試,總共有10個請求被響應,其中最小響應時間為0.02秒,最大響應時間為110秒,平均事務響應時間為4.7秒。這樣平均時間就毫無意義了。

Min:最小響應時間。

最大值:最大響應時間。

Error%(錯誤率):本次測試中【出現錯誤的請求的數量/請求的總數】,就是我們之前說要關注的錯誤率。

hroughput(吞吐量):預設情況下標示每秒完成的請求數。

KB/sec:每秒從伺服器端接收到的資料量。