jmeter之jtl文件解析

咱們知道命令行的方式執行完成jmeter後,會生成jtl文件,裏面打開後就是一行行的測試結果,html

 <httpSample t="1" lt="1" ts="1450684950333" s="true" lb="app.testdelay" rc="200" rm="OK" tn="appdelay-3000g3m 1-1" dt="" by="2265"/>java

  • t表示從請求開始到響應結束的時間
  • lt表示整個的空閒時間
  • ts表示訪問的時刻
  • s表示返回的結果true表示成功,false表示失敗
  • lb表示標題
  • rc表示返回的響應碼
  • rm表示響應信息
  • tn表示線程的名字「1-138」表示第1個線程組的第138個線程。
  • dt表示響應的文件類型
  • by表示請求和響應的字節數

  

即使知道每一個表明的含義,可是咱們肉眼仍是難以直觀的看到性能如何,因此咱們能夠將jtl文件進行轉換,轉成肉眼可以直觀看懂的圖表、csv等形式,下面講解jtl文件轉換的幾種方式:(jmeter系列博文用的例子都是併發測試百度接口,因爲百度自己機制不容許短期併發訪問因此看到個人結果都是失敗的,這裏作下說明,各位真實測試使用本身的jmx腳本的時候通常不會如此)python

1:命令行模式將jtl轉成測試圖表-注意此方法只使用jmeter3.0之後版本apache

  • 第一種:在測試過程當中將jtl轉成測試報告(在jmeter的bin目錄下執行)

./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReportwindows

參數說明:瀏覽器

    -n : 非GUI 模式執行JMeter
    -t : 執行測試文件所在的位置及文件名
    -r : 遠程將全部agent啓動用在分佈式測試場景下,不是分佈式測試只是單點就不須要-r
    -l : 指定生成測試結果的保存文件, jtl 文件格式
    -e : 測試結束後,生成測試報告
    -o : 指定測試報告的存放位置
    -o 指定的文件及文件夾,必須不存在 ,不然執行會失敗,對應上面的命令就是resultReport文件夾必須不存在不然報錯
 
如上命令執行,能夠看到控制檯開始打印數據了
 
運行完成後,能夠在指定的目錄下看到生成結果文件夾/home/tester/apache-jmeter-3.0/resultReport

 

咱們能夠將該文件夾下載到本地windows機器,而後用瀏覽器打開index.html文件就能看到報告內容了
 
首頁Dashboard:

 

解釋:
file:文件名
start time:開始時間
end time:結束時間
filter for display:過濾器
APDEX(Application performance Index):應用程序性能指標,計算每筆交易APDEX的容忍和知足閾值基於可配置的值,範圍在 0-1 之間,1表示達到全部用戶均滿意
T(Toleration threshold):容忍或滿意閾值
F(Frustration threshold):失敗閾值
requests summary中KO指失敗率,OK指成功率
 
首頁Dashboard:頁面滾動條往下拉:
解釋:
statistics:數據分析, 基本將 Summary Report 和 Aggrerate Report 的結果合併,含義分別爲:
請求名稱、請求數目、失敗請求數目、錯誤率(本次測試中出現錯誤的請求的數量/請求的總數)、90%用戶響應時間、95%用戶響應時間、99%用戶響應時間、吞吐量(吞吐量——默認狀況下表示每秒完成的請求數Request per Second,當使用了 Transaction Controller 時,也能夠表示相似 LoadRunner 的 Transaction per Second 數)、Kb/sec(每秒從服務器端接收到的數據量,至關於LoadRunner中的Throughput/Sec)、最小響應時間、最大響應時間
 
errors:錯誤狀況,依據不一樣的錯誤類型,將全部錯誤結果展現
 
 
Chart-Over Time-Response Times Over Time:隨着時間推移響應時間變化趨勢圖
能夠看到歷時3分鐘,響應時間由0.334ms慢慢下滑到0.225ms
 
Chart-Over Time-Bytes Throughput Over Time:隨着時間推移每秒接收和請求字節數變化趨勢圖,藍色爲每秒發送字節數,黃色爲每秒接收字節數:
 
 
Chart-Over Time-Latencies Over Time:隨着時間推移平均響應延時趨勢圖,記錄客戶端發送請求完成後,服務器端返回請求以前這段時間

 

 
因爲我測試用的併發請求百度,請求都被拒絕了,並無收到從服務端返回的請求,因此這裏看到一條0的線
 
以上就是over time欄的全部圖表,除了over time還有throuput和response times欄
throuput欄:
Throughput欄包括:
hits per second:每秒點擊率
codes per second:每秒狀態碼數量
Transactions per second:每秒事務量
Response Time Vs Request: 響應時間點請求的 成功/失敗 數
Latency Vs Request: 延遲時間點請求的 成功/失敗 數
 
Response Times欄:

 

 

  • 第二種:使用以前的測試結果,生成測試報告

./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport服務器

-g : 指定已存在的測試結果文件
-e :測試結果後,生成測試報告
-o : 指定測試報告的存放位置
-o 指定的文件及文件夾,必須 不存在 ,不然執行會失敗

 第一種和第二種其實最終都依賴生成的jtl文件,將jtl文件生成測試報告。雙擊測試報告中的index.html文件便可查看報告內容併發

 

2:插件模式將jtl轉成測試圖表app

  • 第三種:利用GUI頁面圖形化展現jtl文件數據

下載插件JMeterPlugins-Extras.jar、CMDRunner.jar、JMeterPlugins-Standard.jar放到本地windows機器的jmeter的lib/ext目錄下,插件能夠去官網下載,這裏我也給出個人插件地址(只需解壓縮拷貝其中lib包下的jar文件到lib/ext目錄下便可):http://pan.baidu.com/s/1pLexxcZ 密碼:f4rb分佈式

在windows機器上須要安裝jmeter,下載的插件放在jmeter安裝目錄的lib/ext目錄下,而後去bin目錄下雙擊jmeter.bat打開jmeter的gui頁面

在線程組下面添加你想要的監聽器,而後點擊監聽器頁面的瀏覽按鈕,選擇你想瀏覽的jtl文件,等待一會,就能出現你想要的圖形報告

以jp@gc - Bytes Throughput Over Time爲例:

第一步:添加該監聽器,當咱們把下載的jar包放到lib/ext下面而後重啓jmeter後,監聽器中就會多出不少的擴展監聽插件,選擇你關注的結果插件便可

 

第二步:選擇你要瀏覽的jtl文件,監聽器添加成功後,在監聽器頁面都會有一個瀏覽按鈕,點擊瀏覽按鈕找到並選擇你要看的jtl文件

 

 

 

第三步:點擊打開後,等待一會,就能在相應的監聽器頁面看到你想要看到的結果了

 

 

若是你還想要看其餘的數據好比聚合報告,吞吐量,響應時間等等一切你關心的數據,按上面的3個步驟走一遍就行

 

  • 第四種:利用CMDRunner.jar插件用命令行的方式將jtl轉成想要的png或者csv形式,這個方式比3的好處在於3利用gui頁面有時jtl文件數據量很大可能要等好久

首先進入lib\ext目錄下,而後去執行響應的命令

cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext

java -jar CMDRunner.jar  --tool Reporter --generate-png baidu_ThreadsStateOverTime.png --input-jtl baidu_requests_results.jtl --plugin-type   TransactionsPerSecond

cmd運行上面的命令,結果在lib\ext目錄下能夠看到生成了一個baidu_ThreadsStateOverTime.png圖片:

 

雙擊打開png圖片,就能看到想要的圖形效果

 

注意此處的的圖片是斷續的共15分鐘,這跟jtl有關,測試時jtl文件若是不刪除或清空,下一次測試的數據會追加到jtl的末尾,因此能夠看到上面的圖片中個人測試結果分了3次3分鐘,其他時間實際上是並無進行測試的狀況。

 

命令解析:

命令最後有個命令類型:TransactionsPerSecond,除了這個還支持以下命令類型:

 ThreadsStateOverTime、 BytesThroughputOverTime、 HitsPerSecond、 LatenciesOverTime、 ResponseCodesPerSecond、 ResponseTimesDistribution、

 ResponseTimesOverTime、 ResponseTimesPercentiles、 ThroughputVsThreads、 TimesVsThreads、 PageDataExtractorOverTime、 PerfMon

 

咱們能夠用一個windows的bat批處理文件,來執行上面的命令,命令執行完之後去相應目錄下收取結果png圖片就能夠了

 

 

最後一行PerfMon:服務器參數隨時間變化曲線注意這個須要在jmx腳本中添加,服務器監控,要指定ip、端口、監控項,還須要指定perfMon的輸出文件,或者在命令行指定,如./jmeter -n -t baidu.jmx -l 2.jtp -JforcePerfmonFile=true,這樣會輸出在當前路徑。

bat命令爲:對文件名稱和生成的jtl文件名以及CMDRunner.jar包路徑可根據須要修改

@echo off
set file="interface"
set jtlfile="interface_test.jtl"
f:
cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ThreadsStateOverTime.png --input-jtl  %jtlfile%  --plugin-type ThreadsStateOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_BytesThroughputOverTime.png --input-jtl  %jtlfile%  --plugin-type BytesThroughputOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_HitsPerSecond.png --input-jtl  %jtlfile%  --plugin-type HitsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_LatenciesOverTime.png --input-jtl  %jtlfile%  --plugin-type LatenciesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseCodesPerSecond.png --input-jtl  %jtlfile%  --plugin-type ResponseCodesPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesDistribution.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesDistribution
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesOverTime.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ResponseTimesPercentiles.png --input-jtl  %jtlfile%  --plugin-type ResponseTimesPercentiles
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_ThroughputVsThreads.png --input-jtl  %jtlfile%  --plugin-type ThroughputVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_TimesVsThreads.png --input-jtl  %jtlfile%  --plugin-type TimesVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_TransactionsPerSecond.png --input-jtl  %jtlfile%  --plugin-type TransactionsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_PageDataExtractorOverTime.png --input-jtl  %jtlfile%  --plugin-type PageDataExtractorOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-png %file%_PerfMon.png --input-jtl  %jtlfile%  --plugin-type PerfMon

  

雙擊該bat文件後,咱們在lib\ext目錄下去看,就能夠看到生成了不少png圖片

 

 

關心哪一個圖表直接雙擊打開便可,這樣就方便不少了。

固然除了生成png,還能夠生成csv文件,如:

@echo off
set file="interface"
set jtlfile="interface_test.jtl"
f:
cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_PerfMon.csv --input-jtl  %jtlfile%  --plugin-type AggregateReport
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_PerfMon.csv --input-jtl  %jtlfile%  --plugin-type SynthesisReport
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ThreadsStateOverTime.csv --input-jtl  %jtlfile%  --plugin-type ThreadsStateOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_BytesThroughputOverTime.csv --input-jtl  %jtlfile%  --plugin-type BytesThroughputOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_HitsPerSecond.csv --input-jtl  %jtlfile%  --plugin-type HitsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_LatenciesOverTime.csv --input-jtl  %jtlfile%  --plugin-type LatenciesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ResponseCodesPerSecond.csv --input-jtl  %jtlfile%  --plugin-type ResponseCodesPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ResponseTimesDistribution.csv --input-jtl  %jtlfile%  --plugin-type ResponseTimesDistribution
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ResponseTimesOverTime.csv --input-jtl  %jtlfile%  --plugin-type ResponseTimesOverTime
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ResponseTimesPercentiles.csv --input-jtl  %jtlfile%  --plugin-type ResponseTimesPercentiles
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_ThroughputVsThreads.csv --input-jtl  %jtlfile%  --plugin-type ThroughputVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_TimesVsThreads.csv --input-jtl  %jtlfile%  --plugin-type TimesVsThreads
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_TransactionsPerSecond.csv --input-jtl  %jtlfile%  --plugin-type TransactionsPerSecond
java -jar CMDRunner.jar  --tool Reporter --generate-csv %file%_PageDataExtractorOverTime.csv --input-jtl  %jtlfile%  --plugin-type PageDataExtractorOverTime

  

雙擊該bat文件,而後去對應目錄下就能看到生成了不少csv文件,好比AggregateReport.csv就是聚合報告

 

好了,以上就是jmeter的jtl文件查看方式了

相關文章
相關標籤/搜索