天天看點

Jmeter五步實作性能測試

Jmeter除了是一款常用的接口測試工具,它其實更強大的功能是實作性能測試,今天用jmeter實作一個簡單的性能測試案例,本次隻涉及性能測試的執行,前期的測試需求分析,測試資料準備,以及測試結果的分析調優後續會更新相關文章。

首先,基本環境如下:

jdk:java環境

Jmeter:直接解壓使用,本文使用apache-jmeter-5.1.1

運作:進入 <code>apache-jmeter-5.1.1\bin</code>目錄,輕按兩下 <code>jmeter.bat</code>

需求:為了便于大家了解實踐,采用通路百度首頁的一個HTTP請求,并發20個使用者,運作1分鐘,檢視TPS和響應時間變化。

啟動軟體之後,右擊“測試計劃”——“添加”——線程——線程組”,這樣就建好了一個線程組了。

Jmeter五步實作性能測試

這是正常的添加線程組,缺點是線程數不能分批執行,怎麼樣可以實作像roadrunner那樣梯度加壓呢。

幸好Jmeter有着豐富的開源插件,百度搜尋下載下傳JMeterPlugins-Standard.jar,放入目錄apache-jmeter-5.1.1\lib\ext下,就可以實作如下的梯度加壓。

Jmeter五步實作性能測試

啟動參數說明:

This group will start 20 threads:設定線程組啟動的線程總數為20個;

First,wait for N seconds:啟動第一個線程之前,需要等待N秒;(此次案例中可設定為0秒)

Then start N threads:設定最開始時啟動2個線程;

Next,add 2 threads every 2 seconds, using ramp-up 0 seconds:每隔2秒,啟動2個線程;

Then hold load for 60 seconds:啟動的線程總數達到最大值之後,再持續運作60秒;

Finally,stop 5 threads every 1 seconds:每秒停止5個線程;

按照如下順序添加HTTP請求,線程組——添加——取樣器Sampler——HTTP請求。

填寫百度通路請求協定、URL、請求方法GET。

Jmeter五步實作性能測試
Jmeter五步實作性能測試

還可以對請求的響應進行斷言,添加斷言-響應斷言,響應文本。

Jmeter五步實作性能測試

正常使用的監聽器有察看結果樹和聚合報告

添加順序如下:

選擇“添加”→“監聽器”→察看結果樹

選擇“添加”→“監聽器”→聚合報告

我們的目标是觀察TPS和響應時間的變化,有沒有什麼圖形化的工具呢。

開源插件很豐富,将插件jmeter-plugins-manager-1.3.jar放入目錄apache-jmeter-5.1.1\lib\ext下。

添加如下兩個監聽器。

Jmeter五步實作性能測試

點選工具欄運作按鈕,開始執行測試,同時觀察察看結果樹是否有錯誤請求。

Jmeter五步實作性能測試

運作前需要儲存腳本,并且需要将聚合報告的結果儲存在一個.jtl檔案中,如下:

Jmeter五步實作性能測試

運作完成:

聚合報告

Jmeter五步實作性能測試

TPS曲線

Jmeter五步實作性能測試

響應時間曲線

Jmeter五步實作性能測試

JMeter3.0以後提供一個用于生成HTML頁面格式圖形化報告的擴充子產品。該子產品支援通過兩種方式生成多元度圖形化測試報告。

基本指令格式: <code>jmeter-g&lt;log file&gt;-o&lt;Pathto output folder&gt;</code>

如:<code>jmeter-g C:\Users\Administrator\Desktop\通路百度.jtl-o D:\JmeterReport</code>

-g :specifies the existing result file 指定已存在的結果檔案

-o:儲存html報告的路徑, 此檔案夾必須為空或者不存在

<code>`cmd`</code>

<code>`d:`</code>

<code>`cd:D:\jmeter\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin`</code>

<code>`jmeter -g C:\Users\Administrator\Desktop\通路百度.jtl -o  D:\JmeterReport</code>

生成如下測試報告:

Jmeter五步實作性能測試

使用浏覽器打開html檔案:

Jmeter五步實作性能測試

報告中有豐富的圖表資料,便于直覺分析測試結果,大家可以自行探索下這個報告都有哪些功能吧。