I was recently involved in migrating a web application from IIS 5 to IIS 7 on Server 2008. One of the quintessential components to this app was originally written as a VC++ ISAPI server extension. I've read many articles touting the efficiency of the integrated .Net pipeline in IIS 7, so I thought I would rewrite this legacy component in C# as an Http handler instead. Once the code was written, I was looking for a way to test the speed of the old implementation versus the new. To my surprise, there were very few free tools available to do this type of testing easily and quickly. Microsoft offers two tools, Web Application Stress Tool and Web Capacity Analysis Tool. Both were a complete disappointment for me. WAST seems like it hasn't been updated or recompiled for years, and I couldn't even get it to install without errors on Windows 2008 x64. WCAT installed, but it offers no GUI and seemed buggy. So being the geek that I am, I wrote my own.
The tool that I wrote lets you enter multiple URLs to test and allows you to control the number of concurrent requests (threads) that attempt to retrieve the URLs. You can also specify if you would like the URLs to be requested in a round-robin fashion or randomly. Statistics are then displayed for all the requests, and per each URL. Stats given include: the average number of bytes in response, the average round trip request-response time in milliseconds, requests per second, the total number of requests, and the total elapsed time.
This application was written in C# and it requires .Net 2.0+ or Mono 2.0+ to run. It is available free of charge via the download link below, but if you find it useful, please feel free to donate a few bucks via the paypal link at the top right of this page.
Download: SimpleMultiThreadedWebStressTester.exe (18.50 kb)