Slashdot Mirror


Website Load Testing Tools?

bLanark asks: "I'm in the process of converting one of my clients from IIS/CGI to Apache/mod_perl. I need a (free) web site stress/load test tool to prove that performance will be increased. Using this page as my starting point, I can see that there are quite a few tools to investigate. Has anyone used any of these (or any others) and what are they like. I need HTTP GETS, form POSTing, and clever stuff like simulation of caching of images would be useful too, I guess." The previous story didn't get much of a response, but that was about a year ago, but the submittor has shared a fairly impressive list with us, impressions about any piece of software on it would be greatly appreciated.

6 of 31 comments (clear)

  1. wast by Anonymous Coward · · Score: 1, Informative

    For the simpel testing that i've done, i've always used http://webtool.rte.microsoft.com/ . It's free, easy, quick (nothing like 100 hit/s to bring a site down) and does what you want. It has lots of fancy features only a point and a click away (yes, it can be scripted to), but I've newer had the need for it. I only use the stress tool the see *if* there is a problem, you then need a profiler to see where the problem is.

  2. Apache comes with one by Quixote · · Score: 3, Informative

    Checkout Apache Test page. Apache comes with Flood, a profile-driven web server tester.

  3. Siege by modecx · · Score: 3, Informative

    I have had good luck with the neat little program called siege. It can stress a single URL, multiple URLs, follow links from a root URL (simulating an actual user), and have many multiple concurrent connections active. At the end, Siege can tell you all about the server performance, latency, etc.

    I really like one of the other poster's idea about having a load tester read actual log files from Apache, then simulate real user activity. The only problem I can see with this method, is if you changed the layout of your site, all the program would get is a bunch of 404s. However, if one were so motivated, one could hack up such a thing relatively easy, I think. analog can parse Apache/httpd log files, could'nt be all that hard. Siege works well for me, though, so I'll stick with it.

    --
    Constitutional rights may be respected, repealed, or modified; but they must never be ignored.
  4. Check out The Grinder by Solaristrum · · Score: 2, Informative


    The Grinder (http://grinder.sourceforge.net) is an open source Java based load generating tool. It is multi-threaded, distributed, scriptable and has a central statistics reporting mechanism (console). It was used extensively by the authors of J2EE Performance Testing with BEA WebLogic Server and that book has excellent instructions and recommendations about its use.


    I suggest you check it out.

    --
    Solaristrum: One who has spent way too long staring at the Sun
  5. Re:Simulating "real life" is tough. by Anonymous Coward · · Score: 1, Informative
    "... the user should click pages 1/2/3/4/5, in that order. If 80% make it to #3 and 15% are getting to #4, that may reveal..." that the information you are presenting on page 3 is helping them decide that you don't have the product which they want (if you're selling somethign). As a customer, I like having enough information for a decision so I won't waste my time. As the webmaster, you might want to provide a "Not what I want" button to try to collect feedback about what is happening. That button would at least tell you that those who click it are leaving on purpose. You could provide several such buttons for various possible decisions, some of which might lead to related categories in your catalog, or might just go to a page with "Thank You for considering us...here is a link to our Home Page if you want it, or please select one of the following buttons to help us serve you better in the future (followed by several possible reasons for their decision to leave the site)".

    Oh -- another way to detect bottlenecks that 'ps' won't show you is to wrap all your CGI with start/stop log commands. When you turn on a setting it causes all your scripts to log start time, end time, CPU time, etc. Helps you find where to study further.

  6. The Grinder, again by AdamInParadise · · Score: 3, Informative

    Like a previous poster, I recommend The Grinder. I looked all around for a load testing tool. People usually recommend the Microsoft tool, but I don't do Microsoft. I tried JMeter and a bunch of other tools, but they never feel quite right. Most tools fall in two categories: either completly unscriptable or so scriptable that using a general-purpose script language would be faster.

    Among (many) other things, The Grinder has a built-in proxy that allows it to record a browsing session and play it back later. Basically, you start the proxy, set your browser to use this proxy, browse your website, and get back a log of your actions complete with timings and POST values. One other cool features is that it let you define your own datasources so you can fill POSTs and GETs with custom data. Last but not least the author of the tool will personally answer your questions, albeit slowly.

    --
    Nobox: Only simple products.