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] > > > > > > > > >

