Typically the following features are highly desirable:

1. Test/scenario skeleton generation. MAXQ does it
easily. 
 1: # imports
 2: from com.bitmechanic.maxq import HttpTestCase
 3: from junit.textui import TestRunner
 4: from java.util import HashMap
 5: 
 6: # defintition of test class
 7: class MaxQTest(HttpTestCase):
 8:     def __init__(self):
 9:         HttpTestCase.__init__(self, "")
10: 
11:     def runTest(self):
12:         self.get("http://www.google.com/";)
13:         self.assertEquals(200,
self.getResponse().getStatusCode())
14: 
15:        
self.get("http://www.google.com/images/logo.gif";)
16:         self.assertEquals(304,
self.getResponse().getStatusCode())
17: 
18: 
19:         map = HashMap()
20:         map.put("hl", "en")
21:         map.put("q", "testing+tools")
22:         self.get("http://www.google.com/search";,
map)
23:         self.assertEquals(200,
self.getResponse().getStatusCode())
24: 
25: ##########################################
26: 
27: # Code to load and run the test
28: test = MaxQTest()
29: test.runTest()

2. adding assertions. 
3. Instrumenting for performance measurements.
adding 
        begin = System.currentTimeMillis()
        self.post(self.url + self.path, map)
        interval1 = System.currentTimeMillis() - begin

is boring.
4. wrting loader which can create n threads and run m
times.
5. reporting.

Looks like if JMeter API will be published, 3,4,5 can
be done easily. And if HTTPProxy can generate scripts
it will be great.

Thanks

Ilia

--- Mike Stover <[EMAIL PROTECTED]> wrote:
> I would consider such an implementation as a new
> "protocol" for JMeter.  Currently 
> JMeter supports HTTP pretty well, also supports JDBC
> and FTP less thoroughly.  New 
> "protocols" have recently been added, such as SOAP
> and arbitrary Java objects.  
> 
> The value of being able to create Jython scripts
> that are then executed within the 
> framework of JMeter is obvious - but it's not a
> replacement for the type of system I'm 
> talking about.  Not everyone who tests applications
> is a programmer.  I'd like JMeter to 
> be usable by such people.  Furthermore, why would
> you want to write you're own regular 
> expression routines and HTTP sampling routines if
> you didn't have to?  If a Jython 
> protocol were implemented, allowing people to write
> arbitrary Jython code to be 
> "sampled", you'd have what you want, plus, you'd
> have access to some built-in JMeter 
> values.
> 
> -Mike
> 
> On 10 Jul 2002 at 14:27, Ilia Iourovitski wrote:
> 
> > Isn't it better to embed Jython into JMeter like
> MAXQ
> > does.
> > http://www.bitmechanic.com/projects/maxq/
> > It will let users write real scripts. After all
> JMeter
> > about measurements. All tools like Silk Performer
> has
> > it. And it is much easier to debug jython script
> than
> > long set of tests.
> > 
> > Ilia
> > 
> > 
> > --- "Stover, Michael"
> <[EMAIL PROTECTED]>
> > wrote:
> > > Recently I've noticed increased interest in
> making
> > > JMeter react more
> > > dynamically during test runs.  This seems only
> > > natural.  The HTML Link
> > > Parser provides some support, but really only
> seems
> > > to wet the appetite for
> > > more powerful options.  
> > > 
> > > So, I'm starting on a more general solution and
> > > thought some of you might
> > > want to give some input.
> > > 
> > > I would like to allow users to embed simple
> > > reference elements as values in
> > > config and sampler objects, and then have a
> separate
> > > place where the value
> > > of these referenced elements would be specified.
>  
> > > Currently, people use a
> > > Default Config Object to set universal values
> such
> > > as DOMAIN and PORT.  I
> > > think a reference replacement system might be
> more
> > > intuitive than the
> > > current overlay system.  Rather than leaving the
> > > DOMAIN field blank and
> > > supplying a Default Config in the correct place
> in
> > > the tree, one would
> > > instead insert a reference - such as
> ${my_domain} -
> > > which would be replaced
> > > when the test is compiled.  Elsewhere, a table
> of
> > > all reference +
> > > replacement values would allow the user to
> change
> > > all such values in one
> > > location.  
> > > 
> > > This has many advantages over the current
> situation
> > > - it's generic, meaning
> > > one can use this system for any protocol. 
> > > Currently, there is an HTTP
> > > Defaults, and FTP Defaults, etc.  
> > > It allows all such elements to have one
> centralized
> > > home which should be
> > > easier to manage.
> > > 
> > > For such user-defined values, this is simple. 
> I've
> > > taken the variable style
> > > from Ant - ${var-name} - because I like it. 
> Much
> > > preferable to XML IMO.  A
> > > bit more explicit than a Perl style as well. 
> > > Thoughts on this format would
> > > be much appreciated.  Anything simpler than what
> > > I've come up with that does
> > > the job.
> > > 
> > > Certain built-in values would be equally simple:
> > > ${__threadNumber}
> > > ${__threadName}
> > > ${__timestamp}
> > > ${__counter(0,100,1)}
> > > ${__xmlFile(c:\jmeter\bin\users.xml,username)}
> > > ${__literal[[${ant-variable}]]}
> > > 
> > > Well, some are not so simple, but I'm hoping you
> get
> > > the idea.
> > > ${__threadNumber} is replaced by the current
> > > thread's number.  I'm using
> > > "__" to indicate a built-in value as opposed to
> a
> > > user-defined variable
> > > name.
> > > 
> > > ${__counter(0,100,1)} - for those familiar with
> the
> > > HTTP Parameter Mask,
> > > this might look familiar.  The first number
> gives
> > > the starting point, then
> > > the end point, and the last is the increment.  I
> > > think it's another way of
> > > getting the same effect.  By embedding this
> variable
> > > into an argument name
> > > or value, you can get a similar effect:
> > > 
> > > NAME              PARAMETER
> > > username  user${__counter(0,100,1)}
> > > 
> > > This would create arguments in the following
> manner:
> > > username=user0
> > > username=user1
> > > username=user2
> > > etc...
> > > 
> > > Similarly, I see
> > > ${__xmlFile(c:\jmeter\bin\users.xml,username)}
> as a
> > > replacement for the User Parameter Modifier,
> though
> > > some complications have
> > > to be worked out.
> > > 
> > > And ${__literal[[Anything at all]]} allows a
> user to
> > > use values that might
> > > otherwise conflict with this system.  Although,
> that
> > > should be very rare,
> > > because variables not found in the table would
> be
> > > passed on as is.
> > > 
> > > This is getting long, but I've implemented a
> more
> > > complex built-in variable
> > > that allows users to scrape values from
> responses
> > > using regular expressions.
> > > Right now, it takes the following form:
> > > 
> > >
> >
>
${__responseVariable(REGULAR_EXPRESSION,prefix$1sometext$2suffix,[ALL|#|RAND
> > > |0.###],[between])}
> > > 
> > > Take it slow.  From the beginning, "__"
> indicates a
> > > built-in variable.
> > > "responseVariable" is the name used to find the
> > > correct Java class to
> > > execute.  Then there are parentheses with
> arguments
> > > - just like the
> > > __counter(0,100,1) example above.  There are 4
> > > possible arguments, but only
> > > the first 2 are required (thus the square
> brackets
> > > showing optional args).  
> > > 
> > > The first argument is a regular expression, Perl
> > > style.  This regular
> > > expression will be applied to the response data
> 
=== message truncated ===

__________________________________________________
Do You Yahoo!?
Sign up for SBC Yahoo! Dial - First Month Free
http://sbc.yahoo.com

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to