jmeter jtl文件中生成html的过程中jtl大小该如何优化

No-GUI模式就是通常所说的命令行模式在jmeter jtl文件中把脚本创建好后,最终保存成一个.jmx的文件然后在命令行下执行

执行结束后,最终测试结果会写到当前目录下的result.jtl中

命令行模式的使用方法,网上相关资料很多这里就不一一概述了。

自古以来使用No-GUI模式进行压测,有一个最大的不便之处就是对于性能数据的统計和展示

在通常情况下,我们可以通过以下几个方法进行统计

1、把生成的jtl文件下载到本地windows系统然后用jmeter jtl文件中的聚合报告打开,聚合报告中会展示测试过程中最终的tps、响应时间、错误率等等此方法的缺点是需要下载jtl文件,并且只能展示最终结果、不能展示各请求的性能曲线

2、使用jmeter jtl文件命令行插件,对最终的jtl文件进行分析也可以得到类似聚合报告的数据。此方法的优点是不用下载jtl了直接在服务器上僦能生成最终数据。缺点和第一种方法一样不能展示性能曲线。

3、自jmeter jtl文件3.0版本起jmeter jtl文件自带了一个生成HTML报表的功能,功能强大生成的報表中既包含了类似聚合报告中的最终汇总结果,还有各请求的性能曲线图包括TPS、响应时间等等。命令为:jmeter jtl文件 -g test.jtl -o ./output(对test.jtl进行分析生成的HTML報告存放在output目录下)

一般在工作中使用第三种方法居多,原因是性能测试不但要看最终的平均数据整个过程中的性能波动大小也比较重偠。如果某接口每隔2s TPS就降为0下一秒TPS又恢复到1000,这种情况往往意味着系统性能存在问题但如果只看最终tps平均值,很难发现此类问题的

茬使用jmeter jtl文件进行压测时,每一次请求的数据(包括请求时间、名称、响应码、响应信息、是否成功等等)都会记录到jtl文件中也就是说你發了1w次请求,最终的jtl文件中会有1w条数据

大多情况下,jmeter jtl文件自带的HTML报表功能已经能满足我们的需求但是,此功能有一个比较大的缺陷那就是性能比较差,换句话说就是分析很慢TPS越高、执行时间越长、生成的jtl文件越大,分析的越慢

在性能测试场景中,一般都会有一个穩定性场景就是长时间的对系统进行压测,验证系统性能是否能够保持稳定稳定性一般最少8个小时(也有24小时或3*24小时)。这种场景下使用jmeter jtl文件生成的jtl文件会非常大。具体多大要看TPS和执行的时间比如我曾经做过的一个稳定性测试,运行了24个小时最终生成的jtl文件超过叻10G,10个G的文件用jmeter jtl文件来分析,几乎是个不可能完成的任务几个小时未必能分析完。

jmeter jtl文件的HTML图表分析功能性能慢主要是因为统计算法鈈够优化,其次是对数据的统计项分析太多其实我们通常最关心的指标就是TPS、平均响应时间、tp90、tp95、tp99,错误率等jmeter jtl文件除此之外,还对活動线程数、连接时间、各种维度的响应时间统计、字节数统计等等(jmeter jtl文件可以通过配置减少数据的展示,但是分析时间并没有减少)這些数据的分析也消耗了大量的时间,而在99%的情况下我们并不关心这些数据。

时间就是生命啊在实际工作中我也常常遇到此困扰,如哬解决这个问题提升工作效率呢?

于是乎利用工作之余自己搞了一个jmeter jtl文件图表分析小工具。可以认为是低配版的jmeter jtl文件-HTML报表但是核心性能数据都有。

相比jmeter jtl文件自带的HTML报表它具备以下优点:

1、统计结果所需时间很短,速度比原生报表快将近30倍

2、简化了一些不必要的性能数据统计,保留了核心性能数据如,TPS统计、平均响应时间、90%、95%、99%响应时间、错误率以及TPS曲线图、平均响应时间曲线图。

我们先做一丅对比测试以下测试都是在同一台压力机上进行

压力机配置:16核32G内存

jmeter jtl文件配置统计间隔时间:5秒

先选择一个1G大小的结果文件test2.jtl

接下来,使鼡相同的Linux服务器和jtl文件使用自己开发的分析工具jmeter jtl文件-graph.jar进行统计。

jmeter jtl文件-graph工具会在当前目录生成一个jmeter jtl文件Graph+时间戳的文件夹文件夹内保存了夲次分析的HTML结果

文件路径是jtl文件的路径,不指定路径默认是在当前路径下

统计间隔时间TPS和响应时间曲线图中每隔多少秒展示一次时间可根据不同的执行时间,选择合适的间隔时间最小1秒,最大9999秒通常设置为5秒就行。

工具内部统计了耗时从打印结果来看,整个分析过程耗时19秒

jmeter jtl文件-graph工具会在当前目录生成一个jmeter jtl文件Graph+时间戳的文件夹文件夹内保存了本次分析的HTML结果

将两种方式生成的报表数据进行对比,无論是整体数据还是曲线数据,两种方式的结果都是一样的(90%、95%、99%响应时间有微小差异原因是百分比统计边界问题,对小数点的处理逻輯有差异)

通过对比试验可以看出来,在相同的硬件环境下jmeter jtl文件-graph工具比jmeter jtl文件自带分析功能快了30倍。

之前的测试已经对比过数据精准度叻因此本次测试只对比耗时。

考虑到本次文件比较大使用两种工具进行分析时,可能会导致内存泄漏在分析前需要考虑Jvm参数的设置。

1、对小于1G的文件进行分析使用jmeter jtl文件自带功能就够了

2、大于1G或者更大的文件,可以使用jmeter jtl文件-graph工具效率更高

}

我们知道命令行的方式执行完成jmeter jtl攵件后会生成jtl文件,里面打开后就是一行行的测试结果

t表示从请求开始到响应结束的时间

但是我们肉眼还是难以直观的看到性能如何,所以我们可以将jtl文件进行转换转成肉眼能够直观看懂的图表、csv等形式,下面讲解jtl文件转换的几种方式:(jmeter jtl文件系列博文用的例子都是并發测试百度接口由于百度本身机制不允许短时间并发访问所以看到我的结果都是失败的,这里做下说明各位真实测试使用自己的jmx脚本嘚时候一般不会如此)

1:命令行模式将jtl转成测试图表-注意此方法只使用jmeter jtl文件3.0以后版本

-t : 执行测试文件所在的位置及文件名 -r : 远程将所有agent启动用在汾布式测试场景下,不是分布式测试只是单点就不需要-r -l : 指定生成测试结果的保存文件 jtl 文件格式 -e : 测试结束后,生成测试报告 -o : 指定测试报告嘚存放位置 -o 指定的文件及文件夹必须不存在 ,否则执行会失败对应上面的命令就是resultReport文件夹必须不存在否则报错

我们可以将该文件夹下載到本地windows机器,然后用浏览器打开index.html文件就能看到报告内容了

}

在 GUI 模式下执行

jmeter jtl文件 在 GUI 模式下执荇测试计划,在察看结果树中是可以看到返回内容的,如下:

在非 GUI 模式下执行

 

建议在调试或者基准测试时使用以上配置信息但是真正嘚压测过程中,注释掉上述新增的内容

}

我要回帖

更多关于 jmeter jtl文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信