We have some good tools to stressing a web application to evaluate the application’s performance under load. For example, WCAT, this is a good tool, but a little complex. TinyGet is another tool, however, it can send GET request only.
During help on a customer issue, I created a simple UI stressing test tool which is very easy to be used for both GET and POST scenario.
Here is the UI during testing a customer site. This is a page contains the main function of my customer’s application, and it does some map calculation work. The average response time of the site drops to 20 seconds with ~10 POST requests a second.
Now, I will show you how to use this tool for POST since it is the most useful feature of this tool.
1. Open a command window with admin permission, and follow commands:
netsh int ipv6 set dynamicport tcp start=10000 num=50000
netsh int ipv4 set dynamicport tcp start=10000 num=50000
If you are running XP or Windows 2003, follow this article to change the max user port.
When you try to connect from TCP ports greater than 5000 you receive the error 'WSAENOBUFS (10055)'
2. Open your IE, and navigate to the web application you want to stress.
3. Press F12 to open the IE debug window, and enable the network capture of IE.
4. Now, fill in the data of your web page, and click the button to post back. Now, you should see follows in the debug window. Click the “Go to detailed view”.
5. Copy all the request headers.
6. Back to the stressting tool, past the headers in the “Headers” field. Remove first two lines:
“Key Value”, “Request POST http://.....”,
7. Click the “Request body”, and copy the body content to the tool’s body field.
8. Copy the URL to the tool’s URL field.
9. On the tool’s UI, change the method to POST.
10. Change the thread number and requests number based on your requirement.
11. Click “Run” to start the stressing.
The statistics will be updated every second. The average time contains the success request only. Success request here means all requests we received whole response from the server, no matter it is 200 or 500.
Great idea, one small comment, could you add this page as a help option in a menu bar in the tool? That way if we have questions, we could just look at the tool instead of trying to find this page again?