Linux系统下生成TPS,ResponseTime曲线图
1.背景
经常在Linux服务器执行压测,结束之后,将压测数据文件导出到Windows的jmeter桌面版本进行处理,有时传输文件较慢。因此有了在Linux系统下处理数据生成png图片的形式,到时统一导出png结果图片。
2.搭建环境
安装如图插件(图示为:在Linux桌面版/macOS中操作)
(注意如果是在Windows操作,复制Windows的文件过去是不行的,还需要自行赋予诸多文件的可执行权限)
示例
如图,现处理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)