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]

Reply via email to