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和響應時間變化。
啟動軟體之後,右擊“測試計劃”——“添加”——線程——線程組”,這樣就建好了一個線程組了。

這是正常的添加線程組,缺點是線程數不能分批執行,怎麼樣可以實作像roadrunner那樣梯度加壓呢。
幸好Jmeter有着豐富的開源插件,百度搜尋下載下傳JMeterPlugins-Standard.jar,放入目錄apache-jmeter-5.1.1\lib\ext下,就可以實作如下的梯度加壓。
啟動參數說明:
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。
還可以對請求的響應進行斷言,添加斷言-響應斷言,響應文本。
正常使用的監聽器有察看結果樹和聚合報告
添加順序如下:
選擇“添加”→“監聽器”→察看結果樹
選擇“添加”→“監聽器”→聚合報告
我們的目标是觀察TPS和響應時間的變化,有沒有什麼圖形化的工具呢。
開源插件很豐富,将插件jmeter-plugins-manager-1.3.jar放入目錄apache-jmeter-5.1.1\lib\ext下。
添加如下兩個監聽器。
點選工具欄運作按鈕,開始執行測試,同時觀察察看結果樹是否有錯誤請求。
運作前需要儲存腳本,并且需要将聚合報告的結果儲存在一個.jtl檔案中,如下:
運作完成:
聚合報告
TPS曲線
響應時間曲線
JMeter3.0以後提供一個用于生成HTML頁面格式圖形化報告的擴充子產品。該子產品支援通過兩種方式生成多元度圖形化測試報告。
基本指令格式: <code>jmeter-g<log file>-o<Pathto output folder></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>
生成如下測試報告:
使用浏覽器打開html檔案:
報告中有豐富的圖表資料,便于直覺分析測試結果,大家可以自行探索下這個報告都有哪些功能吧。