Interesting question. JMeter's HTTP samplers (at least the ones I've
used) wait for the HTTP request to complete, before passing the response
on to the assertions logic. 

If you were modifying JMeter, perhaps you'd define a 'persistent
channel' HTTP sampler called earlier in the test plan, and set a new
'use-persistent-channel' subelement in existing HTTP samplers (like the
thread pool setting in the JDBC samplers). 

Otherwise, you could do this server-side with some sort of proxy that
mediates persistent connectivity. The first JMeter request to the proxy
establishes a persistent HTTP connection to the actual webserver. JMeter
then makes follow-on requests to the proxy, which pipes them through the
persistent connection.

Regards,
sonam
-----Original Message-----
From: Rodrigo Madera [mailto:[email protected]] 
Sent: Saturday, 14 March 2009 3:57 AM
To: [email protected]
Subject: Ajax Push Testing

Hello there,

First of all, congratulations to the creators of this nice tool.
Outstanding!

Using JMeter, I'm testing a web server that uses Ajax Push, and this
is proving to be kind of tricky to do with JMeter.

Let me set up an example: a server that eats fruits. You send a
"regular" HTTP request and you request it to eat a fruit, using a
serialized JSON request object representing the parameters of the
fruit. As the server eats the requests, he will use Ajax Push to send
the results through a unique channel for the client.

Of course this is a silly example that can be implemented using
numerous trivial methods, but my intent is to demonstrate my case with
a simple analogy.

So let's look at a normal day's life of our beloved server:

1) Server: Ready for some juicy action...

2) Client -> Server:  HTTP Request: POST
/create/persistent/channel/and/keep/this/thing/open/will/ya
    (the server keeps the connection open and will send some stuff
here once the fruit requests come... basic Comet stuff)

3) Client -> Server: HTTP Request: GET
/actions/eat/some?request={json_stuff_here_about_the_fruit_to_eat}
    Server Response: OK Dude, I'll eat that and tell you when I'm done.
    This connection is then closed.

4) Server -> Client:
<script>process({json_results_object_here});</script>
    The result is sent to the appropriate persistent connection.
    Since the server has devoured the fruit that was requested, he
sends a response to the persistent connection.
    Again, basic Comet stuff.


So from this typical Comet dialog we can see that it gets tricky to
test with conventional JMeter components.

So, after this lengthy introduction comes a simple question: Any
improvements/tests/successes with Ajax Push testing with JMeter?

If not, I'm willing to help you create the needed components for this
to happen. Of course, if nothing already is being made.

Thank you for your time,
Rodrigo Madera

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


The information contained in this email and any attached files are strictly
private and confidential. This email should be read by the intended addressee
only.  If the recipient of this message is not the intended addressee, please
call Corporate Express Australia Limited on +61 2 9335 0555 or Corporate Express
New Zealand Limited on +64 9 279 2555 and promptly delete this email and any
attachments.  The intended recipient of this email may only use, reproduce,
disclose or distribute the information contained in this email and any attached
files with Corporate Express' permission. If you are not the intended addressee,
you are strictly prohibited from using, reproducing, disclosing or distributing
the information contained in this email and any attached files.  Corporate
Express advises that this email and any attached files should be scanned to
detect viruses. Corporate Express accepts no liability for loss or damage
(whether caused by negligence or not) resulting from the use of any attached
files.

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

Reply via email to