Troubleshooting WCAT(Web Capacity Analysis Tool) Problems

The best approach to figure out what is wrong with your WCAT setup and scripts is to run it manually which typically involves:

  1. Running the WCAT controller
  2. Running one or more instances of WCAT client(s), the exact number is specified in the WCAT controller command in step 1 above

The advantage with this approach is that you would see errors ,if any, in the command window(s) and not miss them because of the command window closing down which is the case when running the .wsf script provided with the download.

Let's get into some details:

Running the WCAT controller

wcctl.exe is the WCAT controller executable, and a typical command for the controller would look as:

wcctl.exe -t client.ubr -f settings.ubr -s mywebserver -v 10 -c 1 -o wcat_log.xml -x

Some of the switches in the above command can also be specified in the WCAT settings file - settings.ubr. If a switch is specified in the command line it will override the one in the settings file. Let's briefly look at the arguments in the above command:

-t    client scenario file containing the URL's that will be requested by the client(s), you can specify an explicit or a relative path for the file

-f    controller settings file, typically will specify the performance counters that need to be measured on the server, can also specify client scenario file to use, server to which request are to be send etc, you can specify an explicit or a relative path for the file

-s    web server to be stressed

-v    virtual clients per physical client to be used

-c    number of physical clients used to stress the web server

-o    output WCAT log file that gets generated at the end of the test

-x    generate extended information, if you skip this switch the performance counters will not show up in the output log file even if you have them specified in the controller settings file, you will also miss the 'Server Information' section in the report, if you are stressing a Linux server specifying this switch will have no effect, meaning it will not collect the extended information

Running the WCAT client

wcclient.exe is the WCAT client executable, its' job is to make requests that are specified in the client scenario file, typically you would run it as follows:

wcclient.exe wcat_controller_machine_name

As you can see wcclient.exe takes only one argument(unless you are stressing over IPV6 in which case you have to also specify the –i switch), this is the name of the WCAT controller machine.

Depending on the number of physical clients you have specified for the controller command, you may have to run the above command that many times. For example if we would have specified -c 2 for the wcctl command, we would have to run wcclient command two times, ideally from two physical client machines. If you are running multiple instances of the client from individual physical client machines I would run a simple batch script as follows on the client machines so that I don’t have to run the WCAT client from these individual machines every time I run the controller:

:LOOP
timeout -t 5
C:\wcat6.1\wcclient.exe wcat_controller_machine_name
goto LOOP

Make sure the path is valid on your client machines. Once your WCAT client connects to the controller, you should either see an error in both the client and controller command windows or the test should run.

No Comments