python解析jmeter.jtl文件_jmeter之jtl文件解析

python解析jmeter.jtl文件_jmeter之jtl文件解析我们知道命令行的方式执行完成 jmeter 后 会生成 jtl 文件 里面打开后就是一行行的测试结果 t 表示从请求开始到响应结束的时间 lt 表示整个的空闲时间 ts 表示访问的时刻 s 表示返回的结果 true 表示成功 false 表示失败 lb 表示标题 rc 表示返回的响应码 rm 表示响应信息 tn 表示线程的名字 1 138 表示第 1 个线程组的第 138 个线程 dt 表示响应的文件类型 by 表示请求和响应的字节数即便知道每个代表的含

我们知道命令行的方式执行完成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文件夹必须不存在否则报错

如上命令执行,可以看到控制台开始打印数据了

python解析jmeter.jtl文件_jmeter之jtl文件解析

运行完成后,可以在指定的目录下看到生成结果文件夹/home/tester/apache-jmeter-3.0/resultReport

python解析jmeter.jtl文件_jmeter之jtl文件解析

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

首页Dashboard:

python解析jmeter.jtl文件_jmeter之jtl文件解析

解释:

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:页面滚动条往下拉:

python解析jmeter.jtl文件_jmeter之jtl文件解析

解释:

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:随着时间推移响应时间变化趋势图

python解析jmeter.jtl文件_jmeter之jtl文件解析

可以看到历时3分钟,响应时间由0.334ms慢慢下滑到0.225ms

Chart-Over Time-Bytes Throughput Over Time:随着时间推移每秒接收和请求字节数变化趋势图,蓝色为每秒发送字节数,黄色为每秒接收字节数:

python解析jmeter.jtl文件_jmeter之jtl文件解析

Chart-Over Time-Latencies Over Time:随着时间推移平均响应延时趋势图,记录客户端发送请求完成后,服务器端返回请求之前这段时间

python解析jmeter.jtl文件_jmeter之jtl文件解析

由于我测试用的并发请求百度,请求都被拒绝了,并没有收到从服务端返回的请求,所以这里看到一条0的线

以上就是over time栏的所有图表,除了over time还有throuput和response times栏

throuput栏:

python解析jmeter.jtl文件_jmeter之jtl文件解析

Throughput栏包括:

hits per second:每秒点击率

codes per second:每秒状态码数量

Transactions per second:每秒事务量

Response Time Vs Request: 响应时间点请求的 成功/失败 数

Latency Vs Request: 延迟时间点请求的 成功/失败 数

Response Times栏:

python解析jmeter.jtl文件_jmeter之jtl文件解析

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后,监听器中就会多出很多的扩展监听插件,选择你关注的结果插件即可

python解析jmeter.jtl文件_jmeter之jtl文件解析

第二步:选择你要浏览的jtl文件,监听器添加成功后,在监听器页面都会有一个浏览按钮,点击浏览按钮找到并选择你要看的jtl文件

python解析jmeter.jtl文件_jmeter之jtl文件解析

第三步:点击打开后,等待一会,就能在相应的监听器页面看到你想要看到的结果了

python解析jmeter.jtl文件_jmeter之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图片:

python解析jmeter.jtl文件_jmeter之jtl文件解析

双击打开png图片,就能看到想要的图形效果

python解析jmeter.jtl文件_jmeter之jtl文件解析

注意此处的的图片是断续的共15分钟,这跟jtl有关,测试时jtl文件如果不删除或清空,下一次测试的数据会追加到jtl的末尾,所以可以看到上面的图片中我的测试结果分了3次3分钟,其余时间其实是并没有进行测试的情况。

命令解析:

命令最后有个命令类型:TransactionsPerSecond,除了这个还支持如下命令类型:

ThreadsStateOverTime、 BytesThroughputOverTime、 HitsPerSecond、 LatenciesOverTime、 ResponseCodesPerSecond、 ResponseTimesDistribution、

ResponseTimesOverTime、 ResponseTimesPercentiles、 ThroughputVsThreads、 TimesVsThreads、 PageDataExtractorOverTime、 PerfMon

我们可以用一个windows的bat批处理文件,来执行上面的命令,命令执行完以后去相应目录下收取结果png图片就可以了

python解析jmeter.jtl文件_jmeter之jtl文件解析

最后一行PerfMon:服务器参数随时间变化曲线注意这个需要在jmx脚本中添加,服务器监控,要指定ip、端口、监控项,还需要指定perfMon的输出文件,或者在命令行指定,如./jmeter -n -t baidu.jmx -l 2.jtp -JforcePerfmonFile=true,这样会输出在当前路径。

bat命令为:对文件名称和生成的jtl文件名以及CMDRunner.jar包路径可根据需要修改

1 @echo off2 set file=”interface”

3 set jtlfile=”interface_test.jtl”

4 f:5 cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext6 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ThreadsStateOverTime.png –input-jtl %jtlfile% –plugin-type ThreadsStateOverTime7 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_BytesThroughputOverTime.png –input-jtl %jtlfile% –plugin-type BytesThroughputOverTime8 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_HitsPerSecond.png –input-jtl %jtlfile% –plugin-type HitsPerSecond9 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_LatenciesOverTime.png –input-jtl %jtlfile% –plugin-type LatenciesOverTime10 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ResponseCodesPerSecond.png –input-jtl %jtlfile% –plugin-type ResponseCodesPerSecond11 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ResponseTimesDistribution.png –input-jtl %jtlfile% –plugin-type ResponseTimesDistribution12 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ResponseTimesOverTime.png –input-jtl %jtlfile% –plugin-type ResponseTimesOverTime13 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ResponseTimesPercentiles.png –input-jtl %jtlfile% –plugin-type ResponseTimesPercentiles14 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_ThroughputVsThreads.png –input-jtl %jtlfile% –plugin-type ThroughputVsThreads15 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_TimesVsThreads.png –input-jtl %jtlfile% –plugin-type TimesVsThreads16 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_TransactionsPerSecond.png –input-jtl %jtlfile% –plugin-type TransactionsPerSecond17 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_PageDataExtractorOverTime.png –input-jtl %jtlfile% –plugin-type PageDataExtractorOverTime18 java -jar CMDRunner.jar –tool Reporter –generate-png %file%_PerfMon.png –input-jtl %jtlfile% –plugin-type PerfMon

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

python解析jmeter.jtl文件_jmeter之jtl文件解析

关心哪个图表直接双击打开即可,这样就方便很多了。

当然除了生成png,还可以生成csv文件,如:

1 @echo off2 set file=”interface”

3 set jtlfile=”interface_test.jtl”

4 f:5 cd F:\apache-jmeter-3.0\apache-jmeter-3.0\lib\ext6 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_PerfMon.csv –input-jtl %jtlfile% –plugin-type AggregateReport7 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_PerfMon.csv –input-jtl %jtlfile% –plugin-type SynthesisReport8 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ThreadsStateOverTime.csv –input-jtl %jtlfile% –plugin-type ThreadsStateOverTime9 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_BytesThroughputOverTime.csv –input-jtl %jtlfile% –plugin-type BytesThroughputOverTime10 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_HitsPerSecond.csv –input-jtl %jtlfile% –plugin-type HitsPerSecond11 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_LatenciesOverTime.csv –input-jtl %jtlfile% –plugin-type LatenciesOverTime12 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ResponseCodesPerSecond.csv –input-jtl %jtlfile% –plugin-type ResponseCodesPerSecond13 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ResponseTimesDistribution.csv –input-jtl %jtlfile% –plugin-type ResponseTimesDistribution14 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ResponseTimesOverTime.csv –input-jtl %jtlfile% –plugin-type ResponseTimesOverTime15 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ResponseTimesPercentiles.csv –input-jtl %jtlfile% –plugin-type ResponseTimesPercentiles16 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_ThroughputVsThreads.csv –input-jtl %jtlfile% –plugin-type ThroughputVsThreads17 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_TimesVsThreads.csv –input-jtl %jtlfile% –plugin-type TimesVsThreads18 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_TransactionsPerSecond.csv –input-jtl %jtlfile% –plugin-type TransactionsPerSecond19 java -jar CMDRunner.jar –tool Reporter –generate-csv %file%_PageDataExtractorOverTime.csv –input-jtl %jtlfile% –plugin-type PageDataExtractorOverTime

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

python解析jmeter.jtl文件_jmeter之jtl文件解析

好了,以上就是jmeter的jtl文件查看方式了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202367.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:18
下一篇 2026年3月20日 上午7:19


相关推荐

  • Java标识符命名规则与规范

    Java标识符命名规则与规范标识符 程序员在写代码的过程中自定义的一些名称即为标识符 如变量名 类名 函数名 接口名 Java 标识符的命名规则 由标识符的组成 26 个英文字母 大 小写 数字 下划线 美元符号 Java 标识符严格区分大小写 长度无限制标识符不能用数字开头为了提高标识符的可读性 尽量起有意义的名字 一般都是用英文单词表示不要使用关键字和 Java 中的自带类名称做标识符

    2026年3月18日
    2
  • 基于spss的聚类分析(Cluster analysis)「建议收藏」

    基于spss的聚类分析(Cluster analysis)「建议收藏」聚类分析是统计学中研究这种“物以类聚”问题的一种有效方法,它属于统计分析的范畴。聚类分析的实质是建立一种分类方法,它能够将一批样本数据按照他们在性质上的亲密程度在没有先验知识的情况下自动进行分类。这里所说的类就是一个具有相似性的个体的集合,不同类之间具有明显的区别。定义:聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据进行聚类分析,所得到的聚类数.

    2022年10月17日
    5
  • swagger @ApiModel @ApiModelProperty注解属性说明「建议收藏」

    @ApiModel使用场景:在实体类上边使用,标记类时swagger的解析类。概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。用法:@ApiModel(value=“ShopVo”,description=“商铺信息”)@ApiModelProperty使用场景:使用在被@ApiModel注解的模型类的属性上。表示对model属性的说明或者数据操作更改。概述:添加和操作模型属性的数据。用法:@ApiModelProperty(value=“

    2022年4月14日
    860
  • Claude Code Skills 最佳实践:如何建立你的 AI 开发技能库

    Claude Code Skills 最佳实践:如何建立你的 AI 开发技能库

    2026年3月16日
    1
  • u盘文件夹exe病毒彻底_u盘中病毒文件变成快捷方式怎么办

    u盘文件夹exe病毒彻底_u盘中病毒文件变成快捷方式怎么办笔者在使用U盘时,无意之间发现U盘所有文件的后缀名均变为“.exe”,经过查询相关资料,确认这是一种病毒(文件夹EXE病毒)一、简介:木马名称:Worm.Win32.AutoRun.soq,当把U盘插入到一台电脑后,U盘内生成了以原文件夹名字命名的文件,且扩展名为exe,其原理是把原来的文件隐藏,重新生成同名的exe文件。二、解决方案:百度下载USBCleaner,根据软件提示进行操作即可完…

    2025年7月29日
    5
  • 威尔逊定理的应用

    威尔逊定理的应用题目 求 n 1 mod n 的值 很显然当 n 是合数时结果为 0 当然这里有个特例 4 当 n 为素数时 直接用威尔逊定理结果为 n 1 include iostream include cstdio include cstring include cmath defineLLlong cmath cstring cstdio iostream

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号