Linux系統下生成TPS,ResponseTime曲線圖
1.背景
經常在Linux服務器執行壓測,結束之後,將壓測數據文件導出到Windows的jmeter桌面版本進行處理,有時傳輸文件較慢。因此有了在Linux系統下處理數據生成png圖片的形式,到時統一導出png結果圖片。
2.搭建環境
安裝如圖插件(圖示爲:在Linux桌面版/macOS中操作)
(注意如果是在Windows操作,複製Windows的文件過去是不行的,還需要自行賦予諸多文件的可執行權限)
3.示例
如圖,現處理u600.jtl文件,使之生成TPS表現曲線圖(tps.png)和響應時間表現曲線圖(rt.png)兩張圖
命令:
JMeterPluginsCMD.sh --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
命令解析:
--generate-png 後面接要生成的圖片名稱
--input-jtl 後面接要處理的jtl文件
--plugin-type 後面接要生成哪種指標類型的
類型有多種,以下列出主要的
TPS:TransactionsPerSecond
響應時間:ResponseTimesOverTime
響應碼:ResponseCodesPerSecond
--width 800 --height 600:生成圖片的寬高
例1:生成TPS表現曲線圖:
JMeterPluginsCMD.sh --generate-png tps.png --input-jtl u600.jtl --plugin-type TransactionsPerSecond --width 800 --height 600
例2:生成響應時間表現曲線圖:
JMeterPluginsCMD.sh --generate-png rt.png --input-jtl u600.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
執行完例1和例2之後,生成圖片,然後導出Windows查看
4.優缺點分析
優點:便捷快速,節省網絡傳輸文件的時間和空間開銷
缺點:如果多個文件位於多臺Linux服務器,由於是生成圖片,結果無法彙總疊加
針對缺點的改進方案:(使結果文件唯一)
a.可採取分佈式壓測方法
b.壓測結果文件全部彙總到某一臺壓測機器上,所有文件的結果拼接成一個文件(此處有網絡傳輸,但這是同一內網之間的傳輸,相比從雲服務器傳回本地Windows效率要高)
合併文件用到的命令:
sed -i ‘1d’ *.jtl(刪除所有jtl文件首行解釋性文字,不然拼接之後解析會報錯)
cat *.jtl > final.jtl(將當前目錄下所有jtl文件拼接到final.jtl)
然後命令裏僅處理 final.jtl即可