解析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%