>Actually that does matter it cannot do JavaScript. If a request requires
>you need to be able to click a JavaScript button then the request will
>never happen.
The point is that what happens when the button is clicked? Assuming its a
server - ajax call then A HTTP call is made and some parameters are passed
and some values are returned. Thats whats important for the load test , not
the fact that javascript was executed.
So when you record the script , you will be the person clicking the
button(you are recording your actions) , JMeter will record every
interaction that makes a call to the server and will record this as a
separate HTTP request and when you run the script the same request will be
made as if someone clicked the button!

You dont need to use the recorder either , you can modify the script
yourself.

If the javascript didnt actually make any server side call - then it doesnt
matter because you dont want to load test this anyway.

Have you actually tried this? It sounds as if you have a problem recording
your script and you probably have concluded that JMeter doesnt do
javascript (true) and hence cant test websites that do javascript/ajax
(false)

>Real browser is needed
Not for a good deal of use cases - as many of the people on this mailing
list can attest too.





On Tue, Feb 5, 2013 at 6:44 PM, Zippy Zeppoli <[email protected]>wrote:

> Deepak,
> Actually that does matter it cannot do JavaScript. If a request requires
> you need to be able to click a JavaScript button then the request will
> never happen. No request will ever be made.  Also testing true web
> performance requires rendering the DOM, not just initiating HTTP requests
> and recording the response time, rps, etc.
>
> Real browser is needed, with JavaScript, and Jmeter doesn't integrate well
> with this, it isn't designed for this, which is understandable. The problem
> is there is a gap between real browser testing (owned by third party
> companies) and open source tools (Jmeter). There's nothing in between for
> real-browser based performance testing. I could go into why, but its off
> topic of this list, and I'd rather spare everyone the gas.
>
> Point being, Jmeter cannot solve my problem, without some serious
> customization.
>
>
>
> On Tue, Feb 5, 2013 at 6:33 PM, Deepak Shetty <[email protected]> wrote:
>
> > Hi
> > You are getting too caught up in the JMeter doesnt do javascript thing.
> In
> > most cases it doesnt matter.
> > You have a webserver that is receiving HTTP requests - whether those
> > requests are generated via the user clicking a link or via AJAX or via
> > flash is hardly relevant to the webserver. It sees HTTP requests and
> sends
> > HTTP responses.
> > JMeter deals with HTTP request and responses. As long as you can make the
> > same request that your javascript is making (which you can see via the
> > recording feature) , you can test it with Jmeter. The fact that the proxy
> > cant record javascript is irrelevant - it only needs to record the
> > requests. If your javascript is responsible for generating the requests
> in
> > some way , then you have to replicate that within JMeter.
> >
> > Some caveats here are
> > a. Your toolkit should be good when you need to parameterise(JQuery is
> > great , GWT sucks)
> > b. If you need to perform some AJAX requests in parallel then JMeter isnt
> > quite there yet.
> >
> > Its probably true that it is easier writing scripts for Selenium like
> tools
> > - but they also need more resources as well as given how often a UI
> changes
> > as opposed to the HTTP request/response pair , sometimes JMeter scripts
> are
> > more resilient to change.
> >
> > regards
> > deepak
> >
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Feb 5, 2013 at 5:29 PM, Zippy Zeppoli <[email protected]
> > >wrote:
> >
> > > Proxy won't work for clicking on JavaScript.
> > > Selenium will, however, Selenium isn't designed for performance
> testing,
> > > with the exception of BrowserMob, who has perfected it.
> > >
> > > If JMeter had some kind of (good) Selenium integration then it might be
> > > able to achieve it.
> > >
> > > I think JMeter is a good tool, but it's not built for this kind of
> work.
> > >
> > > On Tue, Feb 5, 2013 at 5:20 PM, David Luu <[email protected]> wrote:
> > >
> > > > I'm not familiar with the full feature set of BrowserMob, but JMeter
> > can
> > > do
> > > > what you want, easy or hard, depending on your needs.
> > > >
> > > > If all you need is simple record & playback, JMeter proxy is best
> > option.
> > > > Just record w/ proxy, it generates a basic test plan that you can
> save
> > to
> > > > file and run w/ X threads to generate load, etc.
> > > >
> > > > But that approach will always use the same user, same data in the
> AJAX
> > > > calls during load generation.
> > > >
> > > > If you need them to be unique & parameterized, that's where it takes
> > some
> > > > work to go in and cleanup the proxy recording w/ paramaterized data,
> > > > response checking (if more than just checking HTTP 200 OKs). And
> you'll
> > > > find proxy recording generates a lot of unnecessary HTTP requests for
> > > HTML,
> > > > CSS, image files that aren't necessary of interest as you're testing
> > the
> > > > AJAX calls, which is where you filter out only the requests of
> interest
> > > and
> > > > only use those in test plan, etc.
> > > >
> > > > I believe this kind of work is needed regardless of what tool you
> use,
> > > some
> > > > tools just make it easier, but there's still work to do. Not just a
> one
> > > > touch button approach unless all you need is simple record &
> playback.
> > > >
> > > > On Tue, Feb 5, 2013 at 5:08 PM, Zippy Zeppoli <
> [email protected]
> > > > >wrote:
> > > >
> > > > > Will probably just buy BrowserMob.
> > > > > Too bad there isn't an open source framework to already do this.
> > > > >
> > > > > Building this is a yak shave, and I need to be testing, not
> building
> > a
> > > > test
> > > > > harness thats probably going to break on the next release.
> > > > >
> > > > > On Tue, Feb 5, 2013 at 3:40 PM, David Luu <[email protected]>
> > wrote:
> > > > >
> > > > > > 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