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]

