High-performance Web sites and apps don't happen accidentally. A detailed performance and scalability testing strategy is needed throughout the development lifecycle -- and that requires a good load-testing solution.
The rewards are clear: Strong, ongoing emphasis on performance testing can keep budgets in check and reduce production issues.
With the plethora of performance and scalability tools available today, however, choosing the right one for your shop can
prove challenging.
I recently examined three Web load-testing solutions: OpenSTA 1.4.3, Ingenieurbüro David Fischer's Proxy Sniffer Professional
Edition 3.7, and Minq's PureLoad Enterprise Edition 3.3.1. The three solutions represent the low-, middle-, and higher-end
price points of the load-testing tools market; and for basic HTTP and HTTPS testing, any of these three solutions more than
meets the need. The way each solution is implemented differs, however, as does the functionality they offer.
OpenSTA 1.4.3
OpenSTA is an open source Web load-testing tool that's easy to install and use. Setting up baseline and scalability types
of load tests using either a single or multiple machines is a snap. Platform support, however, is surprisingly limited to
Windows only.
Nonetheless, after registering all of my test machines with an OpenSTA repository on a central machine, I was executing distributed
load tests in no time. Heavy OpenSTA load tests may also require developers to adjust the maximum number of sockets on each
load client to reduce the occurrence of socket errors.
Script creation, execution, and analysis are all accessible via OpenSTA's Commander interface, which is a native Windows application.
After creating a new script definition and clicking on it, the OpenSTA Script Modeler opened. The Script Modeler has three
panes: one for script creation; a diagnostic window for script compilation and playback; and a third view that allows developers
to see the HTML, site structure, and header information.
OpenSTA scripts are written using SCL (Script Control Language) -- a built-in compiled scripting language that has influences
from Fortran and Digital's Digital Command Language. Reference documentation is provided to get developers going. Developers
also might find it easy to learn SCL by first using the built-in capture facility.
After capturing interactive browser sessions with several test Web sites and apps, I read through the code and began quickly
to grasp the language constructs. For most basic testing, you can simply capture, compile, and execute the script using the
Commander.
For more productionlike load tests, you can use a variety of variable-based inputs. For example, I used ODBC to provide script
input of customer information that I had on hand in a database. Likewise, you can input data into scripts from variables,
a list of values, and files, such as Excel spreadsheets.