Why ACT? - Why Stress an Application (Page 2 of 3 )
One of the most common fallacies of web application is that an application, which works well in development environment, will also work well in production environment.
In a development environment, at the maximum only 2 to 3 persons will be using your application whereas in your production environment maybe 500 to 1000 persons might be accessing your web application at the same time and lots of performance and scalability issues like slow response time, non-availability of memory or even the crashing of your application might arise. To prevent this showstopper issues, we should stress test our application before deploying it to the production environment.
Basic purpose of stress testing is to
Accurately measure user experience under heavy load.
To identify performance thresholds.
To identify whether any hardware upgrades are necessary.
ACT is a testing tool for Web applications provided by Microsoft. It is designed to stress test the Web server, Active Server Pages (ASP & ASP.NET) pages and server-side components used in a Web application. Additionally, you can use ACT to test functionality and scalability as well as other types of testing.
Features of ACT
ACT can simulate a large group of users by opening multiple concurrent connections to the server and rapidly sending HTTP requests.
It supports dynamic testing i.e. the programmer can write his own test script that will send requests to the Web server during a test run. These tests are called "dynamic" because the request order, the URL being requested, and many other properties, are determined at the time the test runs. The code in the test can examine the server's previous response before creating the properties of the next request.
It allows you to create and manage user and cookie information.
It supports several different authentication schemes and the SSL protocol, making it ideal for testing personalized and secure sites. Some of the authentication schemes which are supported are
NTLM (Windows NT LAN manager challenge-response)
It stores test data for later comparison and graphing. ACT provides a whole new range of user friendly reports and graphs which can be used to identify performance issues from the test results.
It can create a test automatically based on recorded IE browser session. This is done with the help of "New Test Wizard".
We can also schedule tests to run unattended at regular intervals so testing can be done when there is a low demand for computer resources thus preventing inconvenience to the end users.
It provides 2 object models
Test Object Model- we can create custom tests and control the details of the test based on the response.
Application Object Model-We can start a test, stop test, analyze the data. This primarily for manipulating test data that has already been collected. The test data can be got from custom test created using Test Object Model or through the UI.
To ACT or Not to ACT, is the Question?
In this section, we would try to analyze why one should or shouldn't go for ACT.
For those users of Microsoft WAS (Web Application Stress) Tool, now is the time to shift to ACT. Microsoft has formally patronized ACT as their main stress tool for Visual Studio.NET and its available as part of Visual Studio.NET Enterprise Developer and Visual Studio.NET Enterprise Architect edition.
ACT is still to support features like coordinating testing from multiple physical clients, simulate realistic network speeds and errors that are available in WAS but these are hopefully expected to be addressed in the next version.
When you compare ACT with other products like LoadRunner and Rational LoadTest, the one thing which stands out is that cost of ACT is real dirt cheap (cost of Enterprise Developer edition itself is only $1799). Second, its closely integrated with Visual Studio.NET UI thus allowing Web application developers to easily create tests, run tests, and view the results using the same integrated development environment (IDE) used for their other development tasks.
Only reason you might not go for ACT, is the amount of features offered by other tools like LoadRunner but all of these come at some cost (I actually meant only the cost of the product).
Listed below are some of the advantages and disadvantages, which might help you in making a decision.
One of the main advantage of ACT over existing stress testing tools is that its really cheap
It's ability to support automated performance testing
It makes available the entire list of performance counters available in Windows 2000 to the user.
It's able to support concurrent virtual connections.
It provides various performance graphs for analyzing the test result.
Another feature that sets Application Center Test apart from other Web-based performance testers is its implementation of bandwidth simulation. Some tools let you test at lower bandwidths by holding back packets and sending them out periodically.
This generates the same packet size every time, so it's like running a test of a site at full, sporadic bandwidth. Application Center Test, on the other hand, intercepts outgoing data at the network card layer, and splits packets into sizes that are suitable for the particular bandwidth you've chosen
Supports only one physical client unlike LoadRunner and other products so it doesn’t scale so well.
ACT doesn’t take command line arguments specifying which test to run so to provide unattended testing we must write code (e.g. a windows script host file) to use the Application Object Model.
ACT is mainly for performance testing Web server and Web Application performance; it doesn’t test client side scripts or controls.
Tests that create a large amount of report data may cause the standalone ACT user interface to experience timeout errors.