Hey, 

I've implemented something for pulling (map) messages off a queue and putting 
them into a comma separated name=value string so that I could run response 
assertions on it. If this is useful for you I could send you the source and/or 
JAR file to put into lib/ext 

Regards, 
Noel 

----- "João Tiago Ferreira" <[email protected]> wrote: 
> Hi 
> 
> The missing feature of Jmeter is the QueueReceiver without a QueueSender. My 
> application under test has the same behavior of yours, but without the HTTP. 
> 
> I invoke a “method” in my application via JMS. This method will invoke other 
> “method” in other system via JMS too. I would like to assert this message is 
> sent to the other “system”. 
> 
> Currently I am implementing a JMS receiver similar to the JMS subscriber. 
> 
> Best regards 
> 
> João Ferreira 
> 
> From: Noel O'Brien [mailto:[email protected]] 
> Sent: segunda-feira, 21 de Junho de 2010 11:25 
> To: João Tiago Ferreira 
> Cc: JMeter Users List 
> Subject: Re: JMS Assertion?? 
> 
> Hi, 
> 
> I didn't write this assertion in the end. Instead I used a transaction 
> controller to wrap a HTTP Sampler and a JMS Sampler and user response 
> assertions on both sampler. 
> 
> Also, please keep all JMeter communication on the mailing list ;) 
> 
> Regards, 
> Noel 
> 
> ----- "João Tiago Ferreira" <[email protected]> wrote: 
> > Hi 
> > 
> > I am going to implement these features. I would like to know if you 
> > implemented it or started and if I could use them. 
> > 
> > Best regards 
> > 
> > João Ferreira 
> > ________________________________________ 
> > De: sebb [[email protected]] 
> > Enviado: sábado, 19 de Junho de 2010 17:00 
> > Para: JMeter Users List 
> > Assunto: Re: JMS Assertion?? 
> > 
> > No. 
> > 
> > Patches welcome! 
> > (via Bugzilla please) 
> > 
> > On 18/06/2010, João Tiago Ferreira <[email protected]> wrote: 
> > > Hi 
> > > 
> > > I was interested in such a feature. It was implemented? 
> > > 
> > > Best regards 
> > > 
> > > João Ferreira 
> > > 
> > > 
> > > On Monday 16 February 2009 17:02:32 sebb wrote: 
> > > > On 16/02/2009, Noel O'Brien <[email protected]> wrote: 
> > > > > On Monday 16 February 2009 16:35:56 sebb wrote: 
> > > > > > On 16/02/2009, Noel O'Brien <[email protected]> wrote: 
> > > > > > > On Monday 16 February 2009 15:42:46 sebb wrote: 
> > > > > > > > On 16/02/2009, Noel O'Brien <[email protected]> wrote: 
> > > > > > > > > Hi All, 
> > > > > > > > > 
> > > > > > > > > The web application I'm testing uses JMS queues for 
> > > > > > > > > communicating externally when certain events occur. The JMS 
> > > > > > > > > point to point sampler in JMeter only provides for Request 
> > > > > > > > > and 
> > > > > > > > > Request/Response tests, however almost all of the messaging I 
> > > > > > > > > will be testing will be driven by a HTTP request, i.e. make a 
> > > > > > > > > HTTP request and there should be a corresponding message on a 
> > > > > > > > > JMS queue. 
> > > > > > > > > 
> > > > > > > > > What is the best way to (at least) functionally test this? I 
> > > > > > > > > was thinking of writing a JMS Assertion that I could add to 
> > > > > > > > > the 
> > > > > > > > > HTTP Request sampler, does that sound reasonable? The JMS 
> > > > > > > > > message occurs as a result of the HTTP request being made so 
> > > > > > > > > to 
> > > > > > > > > me it makes sense for it to be an assertion. 
> > > > > > > > 
> > > > > > > > Is the JMS message sent before the HTTP response is returned? 
> > > > > > > > Can 
> > > > > > > > one guarantee this? 
> > > > > > > > I thought JMS was asynchronous. 
> > > > > > > 
> > > > > > > JMS is indeed asynchronous. The HTTP response will always return 
> > > > > > > first, and the logic that puts the message on the queue is run in 
> > > > > > > a 
> > > > > > > background thread which has a default pause interval or 30 
> > > > > > > seconds. 
> > > > > > > So there would be a maximum 30 second delay between the http 
> > > > > > > request 
> > > > > > > completing and the message appearing on the queue 
> > > > > > > 
> > > > > > > > I would expect the HTTP Response Assertion to be used for 
> > > > > > > > checking that the HTTP response is OK, i.e. the page contains 
> > > > > > > > "message sent OK" or whatever. 
> > > > > > > > 
> > > > > > > > > Is there any other way of having a "Response" only JMS 
> > > > > > > > > sampler? 
> > > > > > > > 
> > > > > > > > I've never used JMS, but isn't that what JMS Subscriber does? 
> > > > > > > 
> > > > > > > We are not using topic/subscriber model for JMS, but queues 
> > > > > > > (FIFO). 
> > > > > > > Will the JMS Subscriber sampler work with queues? 
> > > > > > 
> > > > > > No idea, sorry. 
> > > > > > 
> > > > > > > > i.e what does the intended JMS recipient do? 
> > > > > > > 
> > > > > > > The intended JMS recipient parses the message and does further 
> > > > > > > processing. In our example, it's an SMS gateway, but is outside 
> > > > > > > the 
> > > > > > > scope of our app, so I do not need to test it. I do need to test 
> > > > > > > that the correct messages are coming off the queue (in quantity 
> > > > > > > and 
> > > > > > > content) and will need to performance test it in future 
> > > > > > 
> > > > > > I meant - what JMS actions does the recipient do to acquire the 
> > > > > > message, not what it does with the message once received. 
> > > > > 
> > > > > I have no idea how the SMS gateway interacts with the queue, but as 
> > > > > it's 
> > > > > written in Java I assume it would use the onMessage() function. 
> > > > 
> > > > Presumably it will have to do something first in order to use that 
> > > > function. 
> > > > 
> > > > > I will investigate further the JMS Subscriber sampler and report my 
> > > > > findings. 
> > > > 
> > > > Thanks. 
> > > > 
> > > > If it turns out that there is a missing aspect of JMS that JMeter 
> > > > could implement, then we can see about adding it for a future release. 
> > > 
> > > I tried using a JMS Subscriber sampler to take some messages off a queue, 
> > > but 
> > > the following exception happened in jmeter.log: 
> > > 
> > > 2009/02/16 17:04:20 ERROR - jmeter.threads.JMeterThread: 
> > > java.lang.ClassCastException: com.swiftmq.jms.QueueImpl cannot be cast to 
> > > javax.jms.Topic 
> > > at 
> > > org.apache.jmeter.protocol.jms.client.InitialContextFactory.lookupTopic(InitialContextFactory.java:80)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.client.OnMessageSubscriber.initConnection(OnMessageSubscriber.java:119)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.client.OnMessageSubscriber.<init>(OnMessageSubscriber.java:79)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.initListenerClient(SubscriberSampler.java:105)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sampleWithListener(SubscriberSampler.java:162)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sample(SubscriberSampler.java:150)
> > >  
> > > at 
> > > org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sample(SubscriberSampler.java:137)
> > >  
> > > at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290) 
> > > at java.lang.Thread.run(Thread.java:619) 
> > > 
> > > It looks like the sampler is trying to get a reference to a topic but the 
> > > instance hosted by SwiftMQ is a queue, so no dice. 
> > > 
> > > > If none of the existing JMS samplers do what you want, then some code 
> > > > will have to be written in order to solve your problem - whether as an 
> > > > Assertion or a Sampler. 
> > > 
> > > I'm going to extend the existing JMS sampler to work in Response mode. 
> > > I'm 
> > > interested in contributing back to the project too :) 
> > > 
> > > I've already modified it to work with MapMessage as opposed to just 
> > > TextMessage types. 
> > > 
> > > > The BeanShell elements may be useful for prototyping. 
> > > 
> > > Thanks for the tip :) 
> > > 
> > > Noel 
> > > 
> > > > > Thanks for your help, 
> > > > > 
> > > > > Noel 
> > > > > 
> > > > > > > Regards, 
> > > > > > > 
> > > > > > > Noel 
> > > > > > > 
> > > > > > > > > Regards, 
> > > > > > > > > Noel 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > ---------------------------------------------------------------
> > > > > > > > >  
> > > > > > > > >----- - To unsubscribe, e-mail: 
> > > > > > > > > [email protected] For additional 
> > > > > > > > > commands, e-mail: [email protected] 
> > > > > > > > 
> > > > > > > > -----------------------------------------------------------------
> > > > > > > >  
> > > > > > > >---- To unsubscribe, e-mail: 
> > > > > > > > [email protected] For additional 
> > > > > > > > commands, e-mail: [email protected] 
> > > > > > 
> > > > > > ---------------------------------------------------------------------
> > > > > >  
> > > > > > To unsubscribe, e-mail: [email protected] 
> > > > > > For additional commands, e-mail: 
> > > > > > [email protected] 
> > > 
> > > 
> > > 
> > > --------------------------------------------------------------------- 
> > > To unsubscribe, e-mail: [email protected] 
> > > For additional commands, e-mail: [email protected] 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > --------------------------------------------------------------------- 
> > > To unsubscribe, e-mail: [email protected] 
> > > For additional commands, e-mail: [email protected] 
> > > 
> > > 
> > 
> > --------------------------------------------------------------------- 
> > To unsubscribe, e-mail: [email protected] 
> > For additional commands, e-mail: [email protected] 
> > 
> > 
> > 
> > 
>

Reply via email to