[LRUG] Load testing Rails apps
gareth rushgrove
gareth.rushgrove at gmail.com
Wed Sep 21 09:12:10 PDT 2011
On 18 September 2011 20:51, Alan Buxton <alanbuxton at gmail.com> wrote:
> Hi all
>
> So it feels a bit strange to make a tech posting to the list … but here
> goes. It’s an echo of a previous question that instigated the e-petitions
> team coming in to talk to LRUG last week. I really the enjoyed the talk and
> was totally inspired by Alan Thomas’s jmeter piece to have a look at jmeter.
> The load/performance testing I do is either (a) manual, (b) based on looking
> for weaknesses using something like New Relic or (c) uses proprietary tools.
> So an open source option sounded great.
>
> A quick look at jmeter though and it says that it doesn’t execute
> javascript. This is at the same time that Rails apps seem to be using more
> and more javascript. Github, for example, seems to be deciding that my Rails
> apps are written in Javascript rather than Ruby.
>
The answer is "it depends on your application", but their are ways of
making it work either way.
To frame the conversation, when I'm talking about Load testing I'm not
talking about measuring the performance seen by individual browsers,
but the impact of more traffic on the application as a whole.
Because javascript is executed on the client for the majority of
applications it's going to have no impact at all. The main exception
here is if that javascript triggers requests to the server. The
easiest way of dealing with that is using log replay based on real
data, because the logs will have those requests in (e.g. an auto
compete search triggering several requests). Jmeter supports log
replay, as do other tools (e.g.
http://www.igvita.com/2008/09/30/load-testing-with-log-replay)
> 2. What other open source tools are there out there that are worth
> looking at?
>
I'd say it's worth looking at a few different tools depending on your
requirements and what you want in your tool box. I'd break them down
into some groups:
ApacheBench and HTTperf are are great for simple, quick, fire and
forget tests. I'd definitely learn one of them - they provide a very
simple way of sanity checking things. Lots of folks then script
runners or results collectors around them.
Tsung, Siege, Bees with Machine Guns - More heavy duty from my limited
experience, Tsung certainly takes a bit of setup and configuration
(XML and Erlang) but provides a hugely powerful distributed load
testing capability. I've spoken to folks at Nokia who use it across
massive clusters with great success.
Jmeter, Funkload - grouping these (and presumably other tools) as
somewhere in the middle of load testing and functional testing. Both
make it very easy to write functional tests that exercise your
application features, and then scale out the requests for a load test.
Both also provide good ways of visualising the results which makes
analysing results easier when you know what you're looking at.
G
--
Gareth Rushgrove
Web Geek
morethanseven.net
garethrushgrove.com
More information about the Chat
mailing list