jmeter之jtl文件解析(生成测试报告)
我们知道命令行的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果,
<httpSample t="1" lt="1" ts="1450684950333" s="true" lb="app.testdelay" rc="200" rm="OK" tn="appdelay-3000g3m 1-1" dt="" by="2265"/>
- t表示从请求开始到响应结束的时间
- lt表示整个的空闲时间
- ts表示访问的时刻
- s表示返回的结果true表示成功,false表示失败
- lb表示标题
- rc表示返回的响应码
- rm表示响应信息
- tn表示线程的名字“1-138”表示第1个线程组的第138个线程。
- dt表示响应的文件类型
- by表示请求和响应的字节数
即便知道每个代表的含义,但是我们肉眼还是难以直观的看到性能如何,所以我们可以将jtl文件进行转换,转成肉眼能够直观看懂的图表、csv等形式,下面讲解jtl文件转换的几种方式:(jmeter系列博文用的例子都是并发测试百度接口,由于百度本身机制不允许短时间并发访问所以看到我的结果都是失败的,这里做下说明,各位真实测试使用自己的jmx脚本的时候一般不会如此)
1:命令行模式将jtl转成测试图表-注意此方法只使用jmeter3.0以后版本
- 第一种:在测试过程中将jtl转成测试报告(在jmeter的bin目录下执行)
./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
参数说明:









- 第二种:使用之前的测试结果,生成测试报告
./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
第一种和第二种其实最终都依赖生成的jtl文件,将jtl文件生成测试报告。双击测试报告中的index.html文件即可查看报告内容
2:插件模式将jtl转成测试图表
- 第三种:利用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包路径可根据需要修改

1 @echo off
2 set file="interface"
3 set jtlfile="interface_test.jtl"
4 f:
5 cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext
6 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ThreadsStateOverTime.png --input-jtl %jtlfile% --plugin-type ThreadsStateOverTime
7 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_BytesThroughputOverTime.png --input-jtl %jtlfile% --plugin-type BytesThroughputOverTime
8 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_HitsPerSecond.png --input-jtl %jtlfile% --plugin-type HitsPerSecond
9 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_LatenciesOverTime.png --input-jtl %jtlfile% --plugin-type LatenciesOverTime
10 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ResponseCodesPerSecond.png --input-jtl %jtlfile% --plugin-type ResponseCodesPerSecond
11 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ResponseTimesDistribution.png --input-jtl %jtlfile% --plugin-type ResponseTimesDistribution
12 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ResponseTimesOverTime.png --input-jtl %jtlfile% --plugin-type ResponseTimesOverTime
13 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ResponseTimesPercentiles.png --input-jtl %jtlfile% --plugin-type ResponseTimesPercentiles
14 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_ThroughputVsThreads.png --input-jtl %jtlfile% --plugin-type ThroughputVsThreads
15 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_TimesVsThreads.png --input-jtl %jtlfile% --plugin-type TimesVsThreads
16 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_TransactionsPerSecond.png --input-jtl %jtlfile% --plugin-type TransactionsPerSecond
17 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_PageDataExtractorOverTime.png --input-jtl %jtlfile% --plugin-type PageDataExtractorOverTime
18 java -jar CMDRunner.jar --tool Reporter --generate-png %file%_PerfMon.png --input-jtl %jtlfile% --plugin-type PerfMon

双击该bat文件后,我们在lib\ext目录下去看,就可以看到生成了很多png图片

关心哪个图表直接双击打开即可,这样就方便很多了。
当然除了生成png,还可以生成csv文件,如:

1 @echo off
2 set file="interface"
3 set jtlfile="interface_test.jtl"
4 f:
5 cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext
6 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_PerfMon.csv --input-jtl %jtlfile% --plugin-type AggregateReport
7 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_PerfMon.csv --input-jtl %jtlfile% --plugin-type SynthesisReport
8 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ThreadsStateOverTime.csv --input-jtl %jtlfile% --plugin-type ThreadsStateOverTime
9 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_BytesThroughputOverTime.csv --input-jtl %jtlfile% --plugin-type BytesThroughputOverTime
10 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_HitsPerSecond.csv --input-jtl %jtlfile% --plugin-type HitsPerSecond
11 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_LatenciesOverTime.csv --input-jtl %jtlfile% --plugin-type LatenciesOverTime
12 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ResponseCodesPerSecond.csv --input-jtl %jtlfile% --plugin-type ResponseCodesPerSecond
13 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ResponseTimesDistribution.csv --input-jtl %jtlfile% --plugin-type ResponseTimesDistribution
14 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ResponseTimesOverTime.csv --input-jtl %jtlfile% --plugin-type ResponseTimesOverTime
15 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ResponseTimesPercentiles.csv --input-jtl %jtlfile% --plugin-type ResponseTimesPercentiles
16 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_ThroughputVsThreads.csv --input-jtl %jtlfile% --plugin-type ThroughputVsThreads
17 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_TimesVsThreads.csv --input-jtl %jtlfile% --plugin-type TimesVsThreads
18 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_TransactionsPerSecond.csv --input-jtl %jtlfile% --plugin-type TransactionsPerSecond
19 java -jar CMDRunner.jar --tool Reporter --generate-csv %file%_PageDataExtractorOverTime.csv --input-jtl %jtlfile% --plugin-type PageDataExtractorOverTime

双击该bat文件,然后去对应目录下就能看到生成了很多csv文件,比如AggregateReport.csv就是聚合报告

好了,以上就是jmeter的jtl文件查看方式了
jmeter之jtl文件解析(生成测试报告)的更多相关文章
- jmeter之jtl文件解析
		我们知道命令行的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果, <httpSample t="1" lt="1" ts=& ... 
- jmeter之jtl文件解析(生成测试报告)命令行
		jmeter -g TestReport201905060302.jtl -o ./report 1:命令行模式将jtl转成测试图表-注意此方法只使用jmeter3.0以后版本 第一种:在测试过程中将 ... 
- JTLParser-linux上jmeter的jtl文件二次分析
		解析JMeter的JTL文件 2013年01月30日 ⁄ 综合 ⁄ 共 1452字 ⁄ 字号 小 中 大 ⁄ 评论关闭 http://code.google.com/p/xtoolkit/wiki ... 
- JMeter:Dashboard Report自动生成测试报告的巧用和避坑
		官网地址查阅:http://jmeter.apache.org/usermanual/generating-dashboard.html 最近在压测过程中使用 Generating Report Da ... 
- 非GUI运行Jmeter,jtl文件没有响应数据的解决办法
		一.问题 Jmeter官方一直强调要在非GUI模式下运行Jmeter:Run your JMeter test in command-line non-GUI mode. 但在非GUI模式下运行生成的 ... 
- Ant将Jmeter的jtl文件转为html文件报“前言中不允许有内容”
		ant执行jmeter的脚本的时候提示“Fatal Error! 前言中不允许有内容” 解决办法: 在jmeter的bin目录中找到jmeter.properties: 将文件中#jmeter.sav ... 
- JMeter——jmx脚本文件解析
		<!--Jmeter版本信息--> <?xml version="1.0" encoding="UTF-8"?> <jmeterT ... 
- jmeter+ANT+Jekins性能自动生成测试报告脚本(模板),加入:Median TIme、90%、95%、99%、QPS、以及流量显示
		<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/T ... 
- Postman + Newman 生成测试报告
		1.安装Node.js 下载地址: https://nodejs.org/download/ 2.安装Newman 1) 打开cmd,输入:npm install -g newman 2) 安装支持N ... 
随机推荐
- hibernate初使用
			准备工作,安装及配置Hibernate http://zhoualine.iteye.com/blog/1190141 在产生数据库表映射 Java 对象时,我增加了数据库中的两张表分别为Chatlo ... 
- 关于java是值传递还是引用传递
			一.概念 实际上对这两种传递方式,知乎上有个回答说得很好: 值传递和引用传递,属于函数调用时参数的求值策略(Evaluation Strategy),这是对调用函数时,求值和传值的方式的描述,而非传递 ... 
- xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream
			本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0 ... 
- Django调试工具django-debug-toolbar安装使用教程
			在网站开发中难免要调试页面,而使用django开发站点时,可以使用django-debug-toolbar来进行调试,安装这个插件很有用,我一开始是为了查看某个页面中所有的context变量值,当然你 ... 
- 给初学者的总结:jquery选择器
			刚学jquery的时候是又渣又蠢的小白,而且把js和jquery混淆在一起. 把jquery的全部选择器总结在一起,才发现和css选择器好一部分都很像,并且有些选择器还很少用过. 我学习前端的路程是先 ... 
- BBS项目之后台管理
			一:后台管理,添加文章样式编写 创建 一个后台管理模板前段页面 <!DOCTYPE html> <html lang="en"> <head> ... 
- 【转】C语言中DEFINE简介及多行宏定义
			要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ... 
- es学习-索引配置
			1.创建一个新的索引并且添加一个配置 2.更新索引配置:(更新分词器为例子) 更新分词器前,一定要关闭索引,然后更新,最后再次开启索引 url:PUT http://127.0.0.1:9200/su ... 
- HDU 6007 Mr. Panda and Crystal (背包+spfa)
			题意:你生活在一个魔法大陆上,你有n 魔力, 这个大陆上有m 种魔法水晶,还有n 种合成水晶的方式,每种水晶价格告诉你,并且告诉你哪些水晶你能直接造出来,哪些你必须合成才能造出来,问你n魔力最多能卖多 ... 
- 用word2013发布csdn博客
			目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ... 
