Hi,
I've been playing with getting useful results from a very large dataset,
and am wondering whether if others have suggestions or better solutions.
Jmeter ran with a testplan that has:
- 1 thread group, 1200 threads, ramp-up 60s, scheduled for 6hrs
- 7 http requests, all with a response assertion (validates content),
and a Result Status Action Handler (stops thread)
- 1 Assertion Results that logs errors only
- 1 Aggregate Report that writes to the JTL file.
- the point being: simulate a real-world test for a flash app that
queries a cluster with 9 requests per view, 20 viewers (aka clients) per
second, for 6 hours straight
After letting this run for 6 hours, I got a 1.6GB large JTL file. I
already figured out that it's impossible to load into jmeter. It's also
impossible to parse with the XSL templates. I found out that xsltproc
and xalan are way too slow (took >10 minutes on a 33MB jtl file), but
after a long search I grabbed Saxon 6.5.5
(http://saxon.sourceforge.net/) and this gave me good results.
Saxon ran out of memory on the 1.5GB JTL file as well (with Xmx3000m,
sun-java6). It turned out that it could handle files of about 200MB. So
I hacked up a fairly simple piece of perl I found on the net to split it
in files of 750000 records each (http://pastebin.ca/955380).
The resulting files can be processed by JMeter again, but the graphs
that are generated make no sense. So I have been playing around with the
xsl files in extras, and changed the jmeter-results-report_21.xsl
report a bit to include some extra information such as the time of the
first sample, last sample (e.g. test start+end times), and total MBytes
of data. This updated xsl (http://pastebin.ca/955390) does need
xsl-date-time (http://www.djkaty.com/drupal/xsl-date-time) to convert
unixtime into ISO time.
So, I now have a HTML report for each 750000 records, and I simply
concatenate the 9 html reports into one HTML file. But that's not the
only information I need - I can't really make a useful graph out of it
that has a timescale.
Next I used jtl2csv.py off the wiki and hacked it so it converts the
original 1.5GB Assertion Results JTL file into a Simple Data Writer log
(http://pastebin.ca/955398). I then hacked jtlmin.sh so it also adds
maxresponsetime in its OUT file (http://pastebin.ca/955409). So now I
have an OUT file with which I can actually create a graph per minute -
and this does work on the full test results, which is a good thing.
After this learning curve, I stumbled upon StatAggVisualizer
(http://rubenlaguna.com/wp/better-jmeter-graphs/) and obviously I
immediately wanted to try it on my dataset. Unfortunately, it didn't
include makeTitlePanel() in the binary, so I grabbed the source,
uncommented that line, built it with ant and loaded it into JMeter. But
when I choose one of the split JTL files in the StatAggVisualiser
TitlePanel file field, it does not parse it and generate the graph. This
is rather unfortunate, as it seems that this one only works if you add
it to the test plan while it runs.
Okay, so now for the questions part.
- Am I doing things the right way [tm] with regards to the test plan setup?
- How can JMeter itself generate useful results (read: graphs with a
timeline) out of very large tests like this?
- Can someone look at the StatAggVisualizer and patch it so it loads
.jtl datasets and generate a graph out of it? I've tried this, but I am
simply not a coder.
- Last but not least, if others have experience with testing large
datasets like this, and are willing to share their insights, I would
really appreciate it. There's stuff on the wiki but not all of that can
be applied to huge datasets.
I've watched the Google presentation by Goranka Bjedov
(http://video.google.com/videoplay?docid=-6891978643577501895) which was
enlightening, but unfortunately there's little detail on the actual data
processing after it. It seems to me that they convert all their data to
SQL, insert it into MySQL and query it for useful results, but this
would mean that one has to develop a frontend for querying all that data
- which is beyond my project scope.
Thanks in advance for any help!
Regards,
infernix
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]