Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-jmeter Wiki" 
for change notification.

The following page has been changed by robertpnz:
http://wiki.apache.org/jakarta-jmeter/LogAnalysis

The comment on the change is:
refactored my old contribution to this page

------------------------------------------------------------------------------
  }}}
  
  == 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 JTL files of ~100k rows should be summarized into increments of 
1 minute (or 2,5,n minutes depending on requirements).  
  [[BR]]For each minute: throughput = count of transactions in that minute ; 
response time = average of 'elapsed' values in that minute.
- [[BR]]The 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. The core functionality in `jtlmin.sh` is this piece of awk code:
+ [[BR]]The 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. 
+ Script: attachment:jtlmin.sh.txt [[BR]]
+ [[BR]]
- {{{
-     # 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)
-       }
- }}}
- 
  An example session, using `jtlmin.sh` to process a JTL file. The file 
produced, `queryBalance.jtl.OUT` (tab-delimited), can now be used to produce 
throughput graph. Response times can also be included on the secondary axis, as 
in the diagram above.  These graphs were very good at showing when the 
integration layer was slow to respond and when throughput varied from the 
original JMeter plan.
  {{{
  $ jtlmin.sh
@@ -253, +235 @@

  1160355360      2006.Oct.09     13:56   0       0
  }}}
  
- == Overview of Several Output files ==
- 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` (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 (comma-delimited) file 'jtl-file-totals.txt'.  A 
sample of output is shown below.
- {{{
- jtl-file-totals.txt
- 
- 
JMeter-Output-file,total-throughput,start,end,elapsed-sec,elapsed-hms,response-av
- WebGUI/output.1/queryFCNs.jtl,33,20061103.105342 local,20061103.105830 
local,288,00:04:48,225.59
- WebGUI/output.1/queryPackages.jtl,55,20061103.105342 local,20061103.105555 
local,133,00:02:13,234.06
- WebGUI/output.2/queryFCNs.jtl,42,20061103.113435 local,20061103.114155 
local,440,00:07:20,212.12
- WebGUI/output.2/queryPackages.jtl,59,20061103.113435 local,20061103.113737 
local,182,00:03:02,238.78
- WebGUI/output.3/queryPackages.jtl,272,20061103.121135 local,20061103.122042 
local,547,00:09:07,260.03
- Myserver/output/applyDebit.jtl,22219,20060912.154822 local,20060912.162945 
local,2483,00:41:23,1265.12
- Myserver/output/queryBalance.jtl,360,20061009.134916 local,20061009.150914 
local,4798,01:19:58,96.31
- total,23040,,,,,
- }}}
- 
  === 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. Example of usage:
@@ -287, +251 @@

  $ utime2ymd 3601 gmt
  19700101.010001 gmt
  }}}
- 
- == Extract from JMeter Test Plan (JMX file) ==
- Script: attachment:jmxparse.sh.txt [[BR]]
- Another possibly useful tool which will give a text based summary of what's 
in your JMeter JMX script.  Mainly uses grep and sed.
- {{{
- $ jmxparse.sh STEPTEST_Myserver.jmx
-   TestPlan.enabled=true
-   clientID   Myserver
-   wsdl   http://12.34.56.78:8080/webservice.wsdl
-   hostIP   12.34.56.78
-   hostPort   8080
-   serialFile   C:\jmeter\prioritisation\serial.txt
-   rampupInterval   3600
-   rampdownInterval   3600
-   spikeInterval   300
- testname= applyCredit  enabled=false
-   num_threads   2
-   rampup5_1   9
-   rampup5_2   34
-   rampdown5_1   34
-   rampdown5_2   9
-   spikeLoad5   33
- testname= queryBalance  enabled=true
-   num_threads   14
-   rampup2_1   125
-   rampup2_2   461
-   rampdown2_1   461
-   rampdown2_2   125
-   spikeLoad2   497
- }}}
- 
- I tried to extract this information using XPath but it's not really designed 
to report on numerous pieces of data. Anyway, here's the XPath expression, just 
FYI.
- {{{
- //@testname|
- //elementProp/@name|
- //elementProp/stringpr...@name="Argument.value"]/text()|
- //ThreadGroup/@enabled|
- //stringpr...@name="RunTime.seconds"]/text()|
- //stringpr...@name="throughput"]/text()|
- //stringpr...@name="filename"]/text()
- }}}
- 
- === About the Bash scripts ===
- I used [http://www.mingw.org/ MinGW] with the familiar *nix text processing 
tools; here's a list
-  *[http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download 
MinGW], [http://prdownloads.sourceforge.net/mingw/MSYS-1.0.10.exe?download 
MSYS], [http://prdownloads.sourceforge.net/mingw/msysDTK-1.0.1.exe?download 
MSys-DTK], 
[http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=26968 
Gnu-bc], 
[http://prdownloads.sourceforge.net/mingw/join_paste_textutils-2.1-MSYS.tar.bz2?download
 paste], [http://www.bzip.org/1.0.3/bzip2-103-x86-linux26 bzip2], 
[ftp://ftp.vim.org/pub/vim/pc/gvim70.exe gVim 7.0]
-  *Windows alternatives [http://www.cygwin.com Cygwin], 
[http://www.microsoft.com/technet/interopmigration/unix/sfu/default.mspx 
Windows SFU], or linux on a Virtual PC
-  *Or use a Linux/Unix OS exclusively to run the above scripts ..
  
  == Java Class to Quickly Summarize JMeter Results ==
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to