Performing a Stress Test on Web Application?

Here’s another vote for JMeter.

JMeter is an open-source load testing tool, written in Java. It’s capable of testing a number of different server types (for example, web, web services, database, just about anything that uses requests basically).

It does however have a steep learning curve once you start getting to complicated tests, but it’s well worth it. You can get up and running very quickly, and depending on what sort of stress-testing you want to do, that might be fine.

Pros:

  • Open-Source/Free tool from the Apache project (helps with buy-in)
  • Easy to get started with, and easy to use once you grasp the core concepts. (Ie, how to create a request, how to create an assertion, how to work with variables etc).
  • Very scalable. I’ve run tests with 11 machines generating load on the server to the tune of almost a million hits/hour. It was much easier to setup than I was expecting.
  • Has an active community and good resources to help you get up and running. Read the tutorials first and play with it for a while.

Cons:

  • The UI is written in Swing. (ugh!)
  • JMeter works by parsing the response text returned by the server. So if you’re looking to validate any sort of javascript behaviours, you’re out of luck.
  • Learning curve is steep for non-programmers. If you’re familiar with regular expressions, you’re already ahead of the game.
  • There are large numbers of (insert expletive) idiots in the support forum asking stupid questions that could be easily solved if they’d give the documentation even a cursory glance. (‘How do I use JMeter to stress-test my Windows GUI’ shows up quite frequently).
  • Reporting ‘out of the box’ leaves much to be desired, particularly for larger tests. In the test I mentioned above, I ended up having to write a quick console app to do some of the ‘xml-logfile’ to ‘html’ conversions. That was a few years ago though, so it’s probable that this would no longer be required.

Leave a Comment