一、jmeter中使用命令生成測試報告
JMeter雖不像Loadrunner那樣,提供了強大的圖表分析功能,但是jmeter(必須是jmeter3.0以上版本)中同樣提供了自動生成html測試報告的方法,使用如下命令:
命令:jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
-n ---- 非GUI模式執行JMeter
-t ---- 測試計划保存的路徑及文件名
[jmx file] ---- 測試計划保存的路徑及.jmx文件名,路徑可以是相對路徑也可以是絕對路徑,它依賴於DOS中當前目錄,如果DOS中當前目錄在C盤AA目錄下,測試計划.jmx文件保存在E盤BB目錄下,那么應該寫絕對路徑:E:\BB\xx.jmx;如果DOS中當前目錄在E盤AA目錄下
-l ---- 保存生成測試結果的文件
[results file] ---- 保存生成測試結果的文件,jtl文件格式
-e ---- 測試結束后,生成測試報告
-o ---- 存放生成測試報告的路徑
[Path to web report folder] ---- 存放生成測試報告的路徑,它可以是相對路徑也可以是絕對路徑,也是依賴於DOS中當前目錄,如果需要保存到DOS中當前目錄中,那么就直接寫相對路徑;如果不保存在DOS中當前目錄中,那么就必須絕對路徑。如:DOS中當前目錄在C盤AA目錄下,而測試報告要放在 E盤report目錄下,那么應該寫絕對路徑:E:\report,那么測試報告就會保存在E:\report目錄下,注意:report是一個自定義的目錄,原先在F盤中是沒有report這個目錄的,使用命令時相當於同時自動在F盤下自動新建了一個report目錄
舉例說明:
DOS當前目錄是:E:\ 注意:DOS當前的目錄必須是jmeter.log所在的目錄或jmeter.log所在盤的根目錄下,否則會提示無法打開jmeter.log文件。如果啟動jmeter是用DOS命令啟動的,那么jmeter運行時的日志文件是保存在DOS命令啟動時的當前目錄下,所以在生成測試報告時,必須用啟動時的當前目錄;如果用jmeter.bat啟動時,那么生成測試報告的當前目錄可以是jmeter.log所在盤的根目錄下或jmeter.log所在的目錄下;
[jmx file]目錄在:F:\member.jmx
定義[results file]為:E:\results.jtl
定義[Path to web report folder]為: E:\report
使用命令:jmeter -n -t E:\member.jmx -l results.jtl -e -o E:\report

注意:report、results.jtl 原先都是不存在的,如果在使用命令時,report、results.jtl已存在,那么必須用先刪除,否則在運行命令時就會報錯。
可以在DOS中使用命令來刪除
刪除整個目錄:rd /s /q [盤符:][路徑名][子目錄名]
/s ---- 表示刪除該目錄下所有遍歷的子目錄和文件
/q ---- 表示刪除目錄時不提示確認,直接刪除
刪除文件:del /q [盤符:][文件名]
可以寫一個bat批處理命令,就不需要每次都輸入命令了。
在DOS窗口,看到end of run 就表示已經生成測試報告了,到E盤中查看report目錄,可以看到下圖中4個文件

二、測試報告分析
打開index.html,就可以看到頁面左側有下圖中三個目錄

1、Dashboard
(1)Test and Report informations(測試和報告信息)

Source file ---- 生成報告的源文件
Start Time ---- 開始時間
End Time ---- 結束時間
(2)APDEX (應用性能指標),計算每筆交易APDEX的容忍和滿足閾值基於可配置的值,范圍在 0-1 之間,1表示達到所有用戶均滿意

T(Toleration threshold):容忍或滿意閾值
F(Frustration threshold):失敗閾值
(3)Requests Summary(請求總結),成功與失敗的請求占比,KO指失敗率,OK指成功率

(4)statistics(數據分析),類似於jmeter聚合報告

Lable --- 請求名稱
Samples ---- 請求數目
KO ----- 失敗請求數目
Error% ---- 錯誤率(測試中出現錯誤的請求的數量/請求的總數)
Average ---- 響應時間平均值
Min ---- 最小響應時間
Max ---- 最大響應時間
90th pct ----- 90%用戶響應時間
95th pct ---- 95%用戶響應時間
99th pct ----- 99%用戶響應時間
Throughput ---- 吞吐量
Received ---- 每秒從服務器端接收到的數據量
Sent ---- 每秒從服務器發出的數據量
(5)Errors(錯誤情況)
(6)Top 5 Errors by sampler(采樣器的5大錯誤)
2、第二個目錄Chart(圖表),它包括Over Time(時間變化) 、Throughput(吞吐量) 、Response Times(響應時間)

(1)Over Time 中又包括下圖中所示

1)Response Times Over Time(響應時間變化曲線),類似於JMeter Plugins上的jp@gc - Response Times Over Time

2)Response Time Percentiles Over Time (successful responses) (成功響應時間百分比),類似於jmeter聚合報告中的Min、Max、90%、95%、99%

3)Active Threads Over Time(活動線程時間變化曲線圖),隨着時間變化,每個時間節點上的活動線程數

4)Bytes Throughput Over Time(字節吞吐量時間變化曲線圖),藍色為每秒發送字節數,黃色為每秒接收字節數

5)Latencies Over Time(延遲時間曲線圖),記錄的是客戶端發送請求完成后,服務器端返回請求之前的這段時間,在高並發場景或者業務強數據一致性場景,延時是個很嚴重的影響因素

6)Connect Time Over Time(連接時間變化曲線圖),隨着時間變化,每個時間節點花費在連接上的平均時間

(2)Throughput(吞吐量)包括如下圖所示

1)Hits Per Second(每秒點擊率),類似於JMeter Plugins上的jp@gc - Hits per Second

2)Codes Per Second(每秒狀態碼數量)

3)Transactions Per Second(每秒事務數),即TPS,是性能測試中很重要的一個指標,它是用來衡量系統處理能力的一個重要指標,類似於JMeter Plugins上的jp@gc - Transactions per Second

4)Total Transactions Per Second(每秒總事務數)

5)Response Time Vs Request(響應時間點請求的成功或失敗數)

6)Latency Vs Request(延遲時間點請求的成功或失敗數)

(3)Response Times(響應時間)包括如下圖所示

1)Response Time Percentiles(響應時間百分比)

2)Response Time Overview(響應時間概述)

3)Time Vs Threads(平均響應時間和線程數的對應變化曲線)

4)Response Time Distribution(響應時間分布)

三、配置測試報告
JMeter3.0在bin目錄新增了reportgenerator.properties文件保存了所有關於圖形化HTML報告生成模塊的默認配置,要變
更配置,建議不要直接編輯該文件,而是推薦在user.properties中去配置和覆蓋。
1、user.properties中配置,基本配置都是以jmeter.reportgenerator.為前綴的
(1)定義采樣點粒度(overall_granularity)
user.properties中overall_granularity(采樣點粒度)默認為60000ms,如下圖

通過我們測試過程中,需要更小的粒度,如2秒,所以在上圖中將60000修改為2000,也可以在文檔末性加上jmeter.reportgenerator.overall_granularity=2000;
注意:基本配置都是以jmeter.reportgenerator.為前綴的
(2)定義報告的標題(report_title)

(3)定義Apdex評估中滿意的閾值(單位ms)(apdex_satisfied_threshold)

(4)定義Apdex評估中可容忍的閾值(apdex_tolerated_threshold)
![]()
(5)修改響應時間的百分比
jmeter.properties中,有三個默認的響應時間的百分比:

如果需要修改這三個默認值,可以在user.properties文檔末尾加上這三個字段名稱,並重新賦值
2、修改圖表或html報告的頁面標題
JMeter的HTML報告生成時是使用了固定的模板,模板文件路徑為./bin/report-template,進入該目錄可以看到報告的每個
頁面都有一個.fmkr模板文件,包括index.html.fmkr和./content/pages路徑下的幾個文件,可以利用這幾個文件,修改對應的
名稱。
html報告的頁面標題默認為Apache JMeter Dashboard,如下圖所示

如果想改為這個頁面標題,可以通過user.properties中的jmeter.reportgenerator.report_title來修改,通過這種方式來修改,那改變的是所有的頁面標題;

如果通過修改.fmkr文件中的title標簽的雙引號內的值,<title>${reportTitle!"想要設置的title"}</title>,那么修改的單獨頁面的標題;
圖表的名稱,可以在下面路徑中進行修改

如修改響應時間,打開ResponseTimes.html.fmkr,修改title標簽的雙引號內的值

3、配置html測試報告的默認存放路徑(jmeter.reportgenerator.exporter.property.output_dir ),注意:使用命令時,-o選項
是可以覆蓋該配置的路徑的;
