Stress Test ASP.NET Web Application With Free WCAT Tool


Building ASP.NET web applications? Plan to serve thousands of users? Would you like to see how your application would behave [misbehave] under stress?

Use simple-to-use and freely available WCAT tool to generate the load and get detailed report for expected throughput (requests/sec) and other important performance-wise information.

Summary of steps

  • Install WCAT
  • Create configuration files
  • Run the test
  • Examine results

Next section describes each step in details. Note, this post is a how-to, a jump start - not the guidelines or best practices of how to use the tool.

Install WCAT

Download and install Internet Information Services (IIS) 6.0 Resource Kit Tools. For the purpose of our exercise there is no need to install all the tools included with the resources kit, only WCAT.

Create configuration files

There are three textual files one needs to create and configure (you can give any name and extension of your choice):

  • script.txt - this file defines the requests, in other words what pages to request and how to request it. Following is an example of simple script.txt file:

    classId = 1
        Verb = "GET"
        URL = "http://localhost/BankingShmanking/Default.aspx"

  • distribution.txt - defines weights among different requests. For example, if I need to generate request to page1.aspx twice as to page2.aspx, I will define it in this file. In case of loading only one page, the file is meaningless. Following is an example of simple distribution.txt file (1 refers to classId in script.txt file, and 50 is that 50% of the load should got this file which is meaningless since there is only one page to request, thus it will get the whole 100% load):

1 50

  • config.txt - determines the duration of the test, number of clients that will generate the requests against the web application. Following is the example of simple config.txt file:

Warmuptime 5s
Duration 30s
CooldownTime 5s
NumClientMachines 1
NumClientThreads 20

Save the files in "C:\Program Files\IIS Resources\WCAT Controller" folder.

Run the test

To run the stress test open command prompt by opening Run window(Windows + R) type cmd and hit Enter. Change current directory to "C:\Program Files\IIS Resources\WCAT Controller>" and run the following command to test the page hosted on the localhost:

wcctl -c config.txt -d distribution.txt -s script.txt -a localhost

then open second command prompt, change current folder to "C:\Program Files\IIS Resources\WCAT Client" and run the following command to actually launch the virtual client's requests from local machine:

wcclient.exe localhost

Examine results

The results are displayed interactively in the command line windows



The tool also generates log file that includes logged metrics - look for it in "C:\Program Files\IIS Resources\WCAT Controller" folder.

WCAT tool is actively developed by IIS team and recently they released new version of the tool - WCAT 6.3, download it from here, free.

Related Books

Related materials

My related posts

Comments (12)
  1. How to anticipate or better off avoid performance related "surprises" during load and stress

  2. How to anticipate or better off avoid performance related "surprises" during load and stress

  3. [Ed. – Guy, apologies for originally calling you Eran.. shy] PDD – Performance Driven Development presentation

  4. alik levin's says:

    These free performance tools will save you time and money identifying performance bottlenecks. Your customers

  5. Are you web developer building high traffic web site? Are you performance engineer that lives and breaths

  6. Alik Levin's says:

    Chatty database access is the surefire way for slow performance caused by  resources starvation

  7. Alik Levin's says:

    Have you noticed that when ASP.NET web application is accessed for the first time the response is slow?

  8. Alik Levin's says:

         To achieve best performance you need to make decisions based on trade-off between

  9. Alik Levin's says:

        In my previous post -  Best ASP.NET Performance Winner For Data Binding – Hands

  10. Alik Levin's says:

    In my previous post – Best ASP.NET Performance Winner For Data Binding – Hands Up To Response.Write()

  11. Alik Levin's says:

    Field experience proves – the earlier performance is tackled in development lifecycle the better results

  12. No witty opening comment this week…sorry to disappoint. 🙂 General Improve .Net Performance Effectively & Efficiently : Microsoft’s ACE team, who are are responsible for application performance, security, and privacy, has a great post about improving

Comments are closed.

Skip to main content