...
Overview of Several Output files
Wiki Markup |
---|
Script: attachment:jtltotals.sh.txt [BR] After a test run, all the JTL output files were gathered together (20 or so files) in a bunch of subdirectories. The analysis was conducted on a Windows PC with MinGW/MinSYS and a few other tools (msys-dtk, gnu bc, gnu paste, gVim). For an overview of total vs. projected throughput, I used the shell script {{jtltotals.sh}} (attachment:jtltotals.sh.txt --a bit kludgy but hey I'm a tester not a developer!). It collates \[total throughput, start time, end time, time elapsed, average response time\] for each output file. This script will produce a file 'jtl-file-totals.txt'. A sample of output is shown below. |
...
Conversion of JMeter timestamps
Script: attachment:utime2ymd.txt BR The first field of a JTL output file is a Unix timestamp extended to milliseconds. The above script jtltotals.sh
calls another script utime2ymd
to convert start & end times into year-month-day.hour-min-sec (yyyymmdd.HHMMss). Usually the JTL timestamps are adjusted for your local timezone (eg. GMT plus or minus a few hours). The utime2ymd
script uses the local timezone by default, but can also provide GMT values – useful for converting x-thousand elapsed seconds into hhmmss. (attachment:utime2ymd.txt) Example of usage:
No Format |
---|
$ utime2ymd
Usage: utime2ymd <timestamp> [local|gmt]
Convert 10-digit Unix timestamp to yyyymmdd.hhmmss format
use local time zone (default) or UTC/GMT
$ utime2ymd 1158477785863
20060917.192305 local
$ utime2ymd 3601 gmt
19700101.010001 gmt
|
Excel Throughput Graph
Script: attachment:jtlmin.sh.txt BR JMeter's output graph is too granular to depict throughput for extended test intervals (anything from 2 to 24 hours). An Excel constraint its maximum of 65536 rows. So to produce a throughput graph, JTL files of ~100k rows should be summarized into increments of 1 minute (or 2,5,n minutes depending on requirements).
BRFor each minute: throughput = count of transactions in that minute ; response time = average of 'elapsed' values in that minute. BRThe script jtlmin.sh
summarizes large JTL files into 1 minute increments producing an OUT file that can be imported to Excel and a graph produced, as above. Example:
No Format |
---|
$ jtlmin.sh
Usage: jtlmin.sh <filename>
Summarizes JMeter JTL output into 1-minute blocks
$ jtlmin.sh queryBalance.jtl
Processing queryBalance.jtl
$ ls q*
queryBalance.jtl queryBalance.jtl.OUT
$ head queryBalance.jtl.OUT
/c/jmeter/performance/Myserver/output/queryBalance.jtl
unixtime date time thruput(tpm) response(ms)
1160354940 2006.Oct.09 13:49 65 0
1160355000 2006.Oct.09 13:50 0 0
1160355060 2006.Oct.09 13:51 0 0
1160355120 2006.Oct.09 13:52 56 0
1160355180 2006.Oct.09 13:53 98 108
1160355240 2006.Oct.09 13:54 84 125
1160355300 2006.Oct.09 13:55 0 0
1160355360 2006.Oct.09 13:56 0 0
|
The core functionality in jtlmin.sh
is this piece of awk code:
No Format |
---|
# scan a JTL file for records in a specified interval
# and return record count & average response time.
BEGIN {
avgresponse=0; sumresponse=0; trancount=0;
}
{
if(($1 >= lastmin) && ($1 < thismin)) {
trancount++
sumresponse += $2
avgresponse = sumresponse / trancount
}
}
END {
printf("%d %d %d %d",lastmin,sumresponse,trancount,avgresponse);
print " ",strftime("%Y.%b.%d %H:%M",lastmin)
}
|