解析JMeter的JTL文件
http://code.google.com/p/xtoolkit/wiki/JTLParser
Introduction
当把JMeter使用命令行运行后,JMeter会把结果保存到一个指定文件中(使用 -l 参数指定)。这个文件记录了每条Query的响应时间、状态等,如:
<?xml version="1.0" encoding="UTF-8"?>
<testResultsversion="1.2">
<httpSamplet="232"lt="232"ts="1305880045755"s="true"lb="HTTP Request"rc="200"rm="OK"tn="CardEye 1-1"dt="text"by="2508"/>
</testResults>
这其中:
- t 是该Query的响应时间
- ts 是该Query的发送时间,以毫秒为单位
- rc 是返回码
我这个JTLParser就是来解析这个文件,然后返回一些常用的性能结果指标,返回的性能指标有:
- QPS:平均一秒内处理的Query数
- Latency: 平均响应时间
- 最大响应时间
- Query Success Number:返回码是200的Query数
- Query Failed Number:返回码不是200的Query数
下载地址
svn checkout http://xtoolkit.googlecode.com/svn/tags/JTLParser-0.1 JTLParser
Usage
java -jar JTLParser.jar
--jtlFile JTLFile :需要解析的JTL文件
--percentFields PercentFields :需要展示的不同百分比下的Query响应时间,使用逗号分割
--responseTimeFields ResponseTimeField:需要展示的不同响应时间段的Query数,使用逗号分割
默认使用
默认只要使用\-\-jtlFile接一个JTL文件就可以,可以得到类似如下的结果:
FROM: 05/20/1104:27:25
END: 05/20/1104:37:25
SendedQueryNumber: 11721
TotalSpendedTime(s): 599.72
QPS: 19.54
Latency(ms): 43
MaxResponseTime(ms): 403
QuerySuccessNumber: 11721
QueryFailedNumber: 0
展示不同百分比下的Query平均响应时间
运行类似:java -jar JTLParser.jar --jtlFile YourJTLFile --percentFields 40,70,80,90就可以得到如下结果:
40Percentile(ms): 17
70Percentile(ms): 30
80Percentile(ms): 35
90Percentile(ms): 39
展示的不同响应时间段的Query数
运行类似:java -jar JTLParser.jar --jtlFile YourJTLFile --responseTimeFields 30,40,50就可以得到类似如下结果:
Latency>=30(ms): 7665 65.40%
Latency>=40(ms): 6288 53.65%
Latency>=50(ms): 4951 42.24%