JMeter proxy is the most integrated approach, but I find it gives "too much
information", so I tend to use external tools like browser traffic sniffers
(HttpFox, livehttpheaders, ieHttpHeaders) to see what HTTP requests are
made for AJAX calls for just the requests & responses I'm interested in,
easier to manage. But that's just my opinion, others might find the JMeter
proxy easier to use.

Whatever approach you take, you just need to know what HTTP requests are
made by the AJAX calls to replicate in JMeter, and parameterize those
requests to take in dynamic/test data as needed, assert appropriate
response data, etc. In this case, WebDriver can be dropped from the
equation, just gives more overhead and lowers scalability in load
generation.

On Tue, Feb 5, 2013 at 1:55 PM, Philippe Mouawad <
[email protected]> wrote:

> AjaxCall will emit a network call which JMeter will capture.
>
> Use JMeter Server Proxy and you should have the Ajax Calls recorded.
>
> Regards
> Philippe M.
>
> Follow me on twitter <https://twitter.com/philmdot>
>
> UBIK-INGENIERIE on TWITTER <https://twitter.com/ubikingenierie>
>
> UBIK LOAD PACK BLOG <http://www.ubik-ingenierie.com/blog/>
>
> On Tue, Feb 5, 2013 at 10:52 PM, Zippy Zeppoli <[email protected]
> >wrote:
>
> > To clarify:
> > An example would be:
> > 1) log in via a form post
> > 2) look at orders in an ecommerce interface (AJAX call)
> > 3) click on result to view order detail (AJAX)
> >
> > Pretty much a standard ecommerce transaction, but the interface is all
> > javascript.
> >
> > On Mon, Feb 4, 2013 at 7:40 PM, Stott, Charlie <[email protected]> wrote:
> >
> > > > -----Original Message-----
> > > > From: David Luu [mailto:[email protected]]
> > > > Sent: Tuesday, 5 February 2013 1:18 PM
> > > > To: JMeter Users List
> > > > Subject: Re: complex javascript actions in jmeter load test
> > > >
> > > >  >> You can use webdriver from jmeter.  Create a webdriver class that
> > > > performs the requests and runs the javascript via the browser, then
> > > run/call
> > > > it from a BSF or JSR sampler.
> > > >
> > > > Just to clarify, I take it that's only worthwhile to do (in terms of
> > > > scalability) when using PhantomJSDriver or HtmlUnitDriver or
> > > FirefoxDriver
> > > > (on Linux with xvfb) with JMeter this way?
> > > >
> > >
> > > "Worthwhile" depends on assumptions.
> > >
> > > > Because otherwise, the browser GUI is the scalability limiting factor
> > > even
> > > > with JMeter and Grid deployment, and in that case, no difference in
> > using
> > > > WebDriver outside JMeter to do performance tests except if one wants
> > the
> > > > JMeter logging/reporting facilities to help performance test, because
> > > there's
> > > > no or minimal scalabiity gain.
> > > >
> > >
> > > Seems the poster is more at the capability/viability stage of
> developing
> > > tests?  We would need much more information to start advising on the
> > entire
> > > load testing process, start to finish, and what challenges may face the
> > > poster along the way.
> > >
> > >
> > > > On Mon, Feb 4, 2013 at 4:42 PM, Stott, Charlie <[email protected]>
> > wrote:
> > > >
> > > > > You can use webdriver from jmeter.  Create a webdriver class that
> > > > > performs the requests and runs the javascript via the browser, then
> > > > > run/call it from a BSF or JSR sampler.
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Zippy Zeppoli [mailto:[email protected]]
> > > > > > Sent: Tuesday, 5 February 2013 9:28 AM
> > > > > > To: JMeter Users List
> > > > > > Subject: Re: complex javascript actions in jmeter load test
> > > > > >
> > > > > > The problem is Selenium has no performance testing harness.
> > > > > > Sucks that it seems BrowserMob (paid solution) is the only solid
> > > option.
> > > > > >
> > > > > > Until someone builds something with Phantom.js, but it seems
> JMeter
> > > > > > isn't going to cut it here.
> > > > > >
> > > > > > On Fri, Feb 1, 2013 at 5:40 PM, David Luu <[email protected]>
> > > wrote:
> > > > > >
> > > > > > > You'll need to figure out what the complex javascript does.
> Does
> > > > > > > it make any AJAX requests, or is it all local client side
> > > > > processing/rendering?
> > > > > > >
> > > > > > > If it's all local, then there's no point testing it with
> JMeter,
> > > > > > > that's client side browser testing better done with Selenium.
> It
> > > > > > > won't impact the server side load test (except delay in server
> > > > > > > response time for fetching files will impact the javascript
> > > > > > > execution on client side, but that can be compensated w/ JMeter
> > > > > > > load test against server with 1+ Selenium test running at same
> > > > > > > time to gauge client side performance of site/app in browser).
> > > > > > >
> > > > > > > If the javascript does execute AJAX requests, you need to
> figure
> > > > > > > out the HTTP requests made and mimic that in JMeter as part of
> > your
> > > > test.
> > > > > > > You can get that reading dev/design docs, or reverse
> > > > > > > engineer/traffic sniffing the app while doing manual testing.
> > > > > > >
> > > > > > > On Fri, Feb 1, 2013 at 1:45 PM, Zippy Zeppoli
> > > > > > > <[email protected]
> > > > > > > >wrote:
> > > > > > >
> > > > > > > > Hello,
> > > > > > > > If I have a website which requires logging in, and executing
> > > > > > > > complex javascript actions, how would I do this (if at all)
> in
> > > jmeter?
> > > > > > > >
> > > > > > > > I've heard of writing groovy scripts to do this but this
> sounds
> > > > > > > > like a
> > > > > > > lot
> > > > > > > > of work / maintenance.
> > > > > > > >
> > > > > > > > Thank you.
> > > > > > > >
> > > > > > >
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > 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