23

What is the most effective way to load to load test your app? The main point is to determine how many users you could support at a single time with the application still running at a reasonable speed.

6 Answers 6

5

httperf mainly and also AB the Apache Benchmarking tool

(and a ton of instrumentation to catch duplicate queries and cache misses.)

It is simple, effective and can spawn alot of traffic from a quad-core+ machine attached to your server on gigabit ethernet. It also has cool stuff like rate limiting.

If you want to get really fancy, you can record and playback HTTP traffic with httperf.

3
  • Can you use AB on other webservers?
    – milesmeow
    Commented Oct 7, 2010 at 3:29
  • how can you record http traffic with httperf?
    – razenha
    Commented Jul 15, 2012 at 21:51
  • Neither tools parse the HTML and load dependencies like images so unless your infra is totally fucked, they'll both show an unrealistically high requests/s and very low tail latency.
    – Navin
    Commented Feb 15, 2022 at 3:09
4

The most comprehensive load testing software I have found is HP LoadRunner (sorry for the bit.ly link but the HP link is horrible and won't work correctly). It is very flexible and you can generate a lot of different types of reports from the load tests. You can also have a group of machines work in tandem to load test. Not that other tools are bad but it makes something like Apache JMeter look like a toy.

2
  • 1
    No need to URL shorten. It also takes value from the site you link to (if it a good site, it should get the rank impact)
    – Aiden Bell
    Commented Jul 9, 2010 at 3:38
  • 2
    @Aiden: The links are nonfollow anyway.
    – Christian
    Commented Jul 17, 2010 at 11:58
4

Microsoft Web Capacity Analysis Tool (WCAT) is reportedly the tool of choice of the IIS team

3

I am going to put four sets of criteria out there for you to examine tools, and there are lots of them available in the open source and commercial realms to performance test applications.

  1. Will it exercise my interfaces on my application? There are lots of tools out there which are free but interface monolithic and may not exercise your app fully. Commercial tools have wider protocol/interface support than do open source ones
  2. Will the reporting match my needs? Nothing is more frustrating than running a test and then having to spend days trying to pull together results into some meaningful form for analysis and to determine whether you have hit your requirements or not. Once again, this is an area where commercial tools beat the snot out of the open source ones.
  3. Does my team have the technical skills to use the tool? You don't want to be climbing the hurdles or both performance testing process, analysis and then yet another language/tool to learn at the same time. Be realistic.
  4. Will it run on my testing infrastructure? Check the requirements. IF a particular OS and version is noted, then use it or don't use the tool. Fewer things are more frustrating to tool support when someone calls/emails in with a a problem only to find that the requirements for installation and operation have been ignored.

Numbers 1-3 are critical. Have a miss on any of these three and you may have well have purchased the most expensive commercial tool and hired the most expensive consulting firm to deploy it for you - You don't want to be caught driving nails with the butt end of a screwdriver simply because your boss told you that the nail gun was tool expensive for the house you were asked to build (Note: Nail guns are often available for rental, just like commercial test tools)

2

The Grinder is a powerful, flexible, and scriptable open source load testing framework. It is actively developed and has a relatively shallow learning curve compared to some of the other options.

1

It depends on how complex it is; if it's very complex you probably need something more involved, but for a typical dynamic website using a script that spawns several wget instances requesting key pages in your website should work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.