jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From João Tiago Ferreira <joao.tiago.ferre...@novabase.pt>
Subject RE: JMS Assertion??
Date Mon, 21 Jun 2010 19:31:59 GMT
Hi

Patch for JMS Queue receiver in https://issues.apache.org/bugzilla/show_bug.cgi?id=49482

The great difference from Topic Subscriber is the cleaning of resources and is impossibility
of choosing the client method to use.

Instead of cleaning the Receivers in the end of the test they are cleaned at the end of the
sample. I had problems with the initial approach, when running test with multiple clients,
the 1st client was receiving all the messages. This behavior worked in topics because the
delivery semantics are different publish/subscribe vs point-to-point.

Best regards

João Ferreira

> -----Original Message-----
> From: Noel O'Brien [mailto:nobrien@newbay.com]
> Sent: segunda-feira, 21 de Junho de 2010 15:11
> To: JMeter Users List
> Subject: Re: JMS Assertion??
>
> I don't think this should be a problem, but I'll check with my
> employer.
>
> A few points to note:
>
>     • There are existing bugs in it (hangs when put in a loop)
>     • It's designed on the assumption of handling MapMessages
>
> So there may be some refactoring / fixing needed on it before it's
> suitable for mass comsuption
>
> Regards,
> Noel
>
>
>
>
> Are you willing to provide your updates to the JMeter project?
>
> I realise that this may be difficult, depending on your employer.
>
> If it is permitted, it could be done as patches via Bugzilla.
>
> On 21/06/2010, Noel O'Brien <nobrien@newbay.com> wrote:
> > I've uploaded it to Dropbox. I need an email address so I can send
> you a share? Will I use your email address from this thread?
> >
> >
> > Regards,
> > Noel
> >
> > ----- "João Tiago Ferreira" <joao.tiago.ferreira@novabase.pt> wrote:
> > > Hi
> > >
> > > My requirements are very similar to the JMS Subscriber, but for
> Queues. I don't need to subscribe many messages, just one for sampler,
> and since they contain xml it is very easy to assert with XPath.
> > >
> > > But if you could send me the source, would be nice, I could get
> some ideas. Btw, I pretend to commit my alterations in jmeter project.
> > >
> > > Thanks in advance
> > >
> > > João Ferreira
> > >
> > > > -----Original Message-----
> > > > From: Noel O'Brien [mailto:nobrien@newbay.com]
> > > > Sent: segunda-feira, 21 de Junho de 2010 12:00
> > > > To: JMeter Users List
> > > > Subject: Re: JMS Assertion??
> > > >
> > > > 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" <joao.tiago.ferreira@novabase.pt>
> 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:nobrien@newbay.com]
> > > > > 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" <joao.tiago.ferreira@novabase.pt>
> 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 [sebbaz@gmail.com]
> > > > > > 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
> > > > <joao.tiago.ferreira@novabase.pt> 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 <nobrien@newbay.com>
wrote:
> > > > > > > > > On Monday 16 February 2009 16:35:56 sebb wrote:
> > > > > > > > > > On 16/02/2009, Noel O'Brien <nobrien@newbay.com>
> wrote:
> > > > > > > > > > > On Monday 16 February 2009 15:42:46
sebb wrote:
> > > > > > > > > > > > On 16/02/2009, Noel O'Brien <nobrien@newbay.com>
> 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.initConnectio
> > > > n(OnMessageSubscriber.java:119)
> > > > > > > at
> > > > > > >
> > > >
> org.apache.jmeter.protocol.jms.client.OnMessageSubscriber.<init>(OnMess
> > > > ageSubscriber.java:79)
> > > > > > > at
> > > > > > >
> > > >
> org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.initListenerCl
> > > > ient(SubscriberSampler.java:105)
> > > > > > > at
> > > > > > >
> > > >
> org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sampleWithList
> > > > ener(SubscriberSampler.java:162)
> > > > > > > at
> > > > > > >
> > > >
> org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sample(Subscri
> > > > berSampler.java:150)
> > > > > > > at
> > > > > > >
> > > >
> org.apache.jmeter.protocol.jms.sampler.SubscriberSampler.sample(Subscri
> > > > berSampler.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:
> > > > > > > > > > > > > jmeter-user-unsubscribe@jakarta.apache.org
For
> > > > additional
> > > > > > > > > > > > > commands, e-mail: jmeter-user-
> help@jakarta.apache.org
> > > > > > > > > > > >
> > > > > > > > > > > > -------------------------------------------------
> ------
> > > > ----------
> > > > > > > > > > > >---- To unsubscribe, e-mail:
> > > > > > > > > > > > jmeter-user-unsubscribe@jakarta.apache.org
For
> > > > additional
> > > > > > > > > > > > commands, e-mail: jmeter-user-
> help@jakarta.apache.org
> > > > > > > > > >
> > > > > > > > > > -----------------------------------------------------
> ------
> > > > ----------
> > > > > > > > > > To unsubscribe, e-mail: jmeter-user-
> > > > unsubscribe@jakarta.apache.org
> > > > > > > > > > For additional commands, e-mail: jmeter-user-
> > > > help@jakarta.apache.org
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -----------------------------------------------------------
> ------
> > > > ----
> > > > > > > To unsubscribe, e-mail: jmeter-user-
> > > > unsubscribe@jakarta.apache.org
> > > > > > > For additional commands, e-mail: jmeter-user-
> > > > help@jakarta.apache.org
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -----------------------------------------------------------
> ------
> > > > ----
> > > > > > > To unsubscribe, e-mail: jmeter-user-
> > > > unsubscribe@jakarta.apache.org
> > > > > > > For additional commands, e-mail: jmeter-user-
> > > > help@jakarta.apache.org
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > -------------------------------------------------------------
> ------
> > > > --
> > > > > > To unsubscribe, e-mail: jmeter-user-
> unsubscribe@jakarta.apache.org
> > > > > > For additional commands, e-mail: jmeter-user-
> > > > help@jakarta.apache.org
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>

Mime
View raw message