I've been using JMeter as a user quite a bit the past few weeks, and I've learned some
things
about it. One is that it's very tedious to use, and so a lot of my thoughts have to
do with
creating more powerful tools to manipulate test scripts. I think I'd like to
introduce the idea of
alternate ways to view a test plan, ala eclipse, so that different aspects of test
plan editing can
be brought to the forefront.
Remote testing needs to be revamped because it's pointless to have 10 remote machines
all
trying to stuff responses down the I/O throat of a single controlling machine - better
to have the
remote machines keep the responses till the end and not risk the accuracy of
throughput
measurements. Perhaps a simpler format can be created for remote testing whereby
during
the test only success/failure plus response time is sent to the controlling machine,
and
everything else waits to the end of the test.
I want test results categorized by test run, and not just as a list of sampleResults.
A set of
sample results has a metadata set that describes the test run, and JMeter should be
able to
use such metadata to potentially combine test run results and also display statistics
comparing two test runs (ie, graphing # users vs throughput).
Result files need to be abstract datasources with an interface that visualizers talk
to without
knowing whether the backing data is an XML file, a CSV file, a database, etc. Right
now,
JMeter knows how to write CSV files, but can't read them! A defined interface will
help us
modularize this code whereas currently it's mixed up with the code for reading and
writing test
plan files.
Visualizers should be able to output useful file types for distribution of results to
non-jmeter
users. HTML and PNG files, for instance. Some way of exporting the data to a format
that
can be easily posted.
I wanted to make JMeter single threaded with the new non-blocking IO packages, but I
don't
think this is feasible. It's possible to do if you can get access to the very sockets
that do the
communicating, but how will you get that for jdbc drivers? Even for HTTP, we'd have
to write
our own HTTP Client from which we could gain access to the socket being used and
control
the IO for it (or take the commons client and modify it so). Because to put it all in
a single
threaded model, we'd have to take control of the IO part, and force the samplers to
hand their
sockets to some central code that would take the socket, take the bytes the sampler
wants to
send, and it would hand back the return bytes plus timing info. It'd be nice, but I
don't think it's
feasible for most protocols.
JMeter needs to collect more data. Size of responses should be explicitly collected
to help
throughput calculations of the form bytes/second. Timing data should include a
latency
measurement in addition to the whole response time. Multiple SampleResponses need to
be
dealt with better - I'm thinking that instead of an API that looks like:
Sampler{
SampleResult sample();
}
We need one that's more based on a callback situation:
Sampler {
void sample(SendResultsHereService callback);
}
so that Samplers can send multiple results to the collector service. This would make
samplers more flexible for when scripting in python is allowed - to allow the adhoc
scripter to
push out sample results at any time during their script.
Given this, post-processors like assertions and post-processors need a way to know
which
result to apply themselves to. We already have this problem wherein redirected
samples
confuse these components. We need a way to either mark a particular response as "the
main
one" or define a response set all of which need to be tested by the applicable
post-processors.
I'd also like to replace the Avalon Configuration stuff with something that can load
files more
stream-like and piecemeal, instead of creating a DOM and then handing it over to
JMeter. It
goes too long without any feedback for the user. Plus uses a ton of memory.
Sun's HTTP Client should be replaced. As the cornerstone of JMeter, we ought to have
one
that is highly flexible to our needs, provides the most accurate timing it can, the
most
performance possible, the least resource intensive as possible, and the most
transparency to
JMeter's controlling code. I think the commons HTTP Client is probably a good place
to start,
being open-source, we can craft it to our needs.
Well, that's a start :-)
-Mike
On 11 Aug 2003 at 2:35, Jordi Salvat i Alabart wrote:
>
>
> [EMAIL PROTECTED] wrote:
> > I'm pretty committed to the idea that JMeter 2.0 will be drastically different
> > from JMeter
1.9.
> > So, feel free to make big changes.
>
> Hey, Mike, we'd like to know what you're thinking about?
>
> --
> Salut,
>
> Jordi.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
--
Michael Stover
[EMAIL PROTECTED]
Yahoo IM: mstover_ya
ICQ: 152975688
AIM: mstover777
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]