python解析jmeter.jtl文件_jmeter之jtl文件解析(生成测试报告)
我们知道命令行的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果,
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
参数说明:
-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栏:
response times栏包括:
Response Time Percentiles: 响应时间百分比
Active Threads Over Time: 随着时间推移活跃线程数
Time Vs Threads: 测试过程中的线程数时续图
Response Time Distribution: 响应时间分布
第二种:使用之前的测试结果,生成测试报告
./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转成测试图表
第三种:利用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文件查看方式了
python解析jmeter.jtl文件_jmeter之jtl文件解析(生成测试报告)相关推荐
- jmeter非GUI模式如何压测并生成测试报告
在启动Jmeter时,我们会看到这样一句提示: 不要使用GUI模式(界面模式)进行负载测试,GUI模式只能用于创建测试和调试.进行负载测试时,需要时用非GUI模式. 那么为什么进行负载测试时一定要用非 ...
- python解析jmeter.jtl文件_jmeter jtl文件解析
Jmeter报告生成: 1.第一种在测试过程中直接用命令生成图标 在测试过程中将jtl转成测试报告(在jmeter的bin目录下执行) ./jmeter -n -t baidu_requests_re ...
- jmeter之jtl文件解析(生成测试报告)
我们知道命令行的方式执行完成jmeter后,会生成jtl文件,里面打开后就是一行行的测试结果, <httpSample t="1" lt="1" ts=& ...
- 使用jmeter自动生成测试报告
目录 1.打开cmd窗口 2.执行脚本 3.查看报告 1.打开cmd窗口 使用win+R,输入cmd,打开命令窗口,定位到jmeter脚本所在的目录,例如我的是:D:\workplace\Cworkf ...
- python解析jmeter.jtl文件_jmeter测试结果jtl字段分析
因为用Jmeter做压力测试的缘故,需要用Jmeter生成性能图表,可以Jmeter本提供的图是在是看不懂,在google的code上找到 了JMeterPlugin,他可以把JMeter生成的jtl ...
- jmeter稳定性24小时测试jtl文件太大(2g-6g )问题解决
jtl作为测试结果记录文件,如果记录的信息过多,则会出现文件过大的情况,导致根据结果转换web报告的时候出现失败. 1. 在windows系统通过图形界面测试的配置 1.1 修改jtl文件记录配置 这 ...
- jmeter随笔 如何在写入jtl文件时同步写入数据库
故事背景 前阵子,在飞测群(283440449)里讨论过,把聚合报告的jtl文件数据同步写入到数据库.具体好处的话,大家可以发散发散. 加之之前有了修改源码的经验,这次的解决思路,大体还是从源码着手. ...
- python解析xml文件选用模块_python语言解析xml文件的常用的有两种方式
MiniDom方式解析xml xml文件以data.xml为例,具体操作如下: data.xml: 保存用户的信息 Jordy 12345678 20 男 上网 功夫 34443678 18 男 功夫 ...
- jmeter非gui运行,jtl生成了,但是html报告没有生成
jmeter非gui运行,jtl生成了,但是html报告没有生成,查看log,内容如下: 22:45:00,913 ERROR o.a.j.JMeter: Error generating dashb ...
最新文章
- HDU 4832(DP+计数问题)
- 忘了PostgreSQL数据库的密码的解决方案
- opencv 图像雾检测_OpenCV图像处理-基于OpenPose的关键点检测
- vue路由配置src/router/index.js
- 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数
- 关于图的题目不给数据范围的情况如何解决
- anaconda下载过慢修改源配置
- N个数全排列的非递归算法
- Oracle dbv 坏块信息,【dbv】使用dbv工具检验数据文件是否有坏块
- 【数字信号处理】划重点
- FAN6921MRMY 带多种保护功能 电流模式PWM控制 功率因数校正 (PFC) 控制器
- 解决jsp页面引入百度编辑器,出现xss漏洞
- click和touchmove vue_移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法...
- 数据结构题(C语言)----括弧匹配检验(check)
- 教程:Windows10下如何安装使用多版本Tensorflow2.x/Pytorch/paddlepaddle的GPU版本[和CUDA的安装及问题详解]【亲测可行】【详细和持续更新】
- 机械键盘用哪种轴的好?
- 第九届泰迪杯A题(1)
- 高职计算机应用专业课程,浅谈高职计算机应用专业课程设置
- 三下乡辅导孩子计算机知识,【“三下乡”社会实践活动】计算机学院——每个课程,都是你我成长的故事...
- 图片缩放情况下失真问题处理
热门文章
- [Math] 程序员的数学[1]
- 【每日英语】2021-02-27
- 自动续费PHP,Hostwinds 续费教程:管理取消支付宝、PayPal 等付款方式的自动续费...
- HDFS DataNode问题-_COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There
- 医生投书媒体曝光医院黑幕 “制度导致乱收费”
- 万字长文,Python数据分析实战,使用Pandas进行数据分析
- Fins协议-欧姆龙PLC数据采集读写操作上位机软件工具
- 谁拥有你的数据?谁又动了你的数据?
- 《与巴菲特共进午餐时,我顿悟到的5个真理》精髓:通过投资的5个真理,教你成为一名真正的价值投资者。
- 【GPT模型】遥感云大数据在灾害、水体与湿地领域中的应用