Website Performance And Load Testing

Your company is rolling out its new web application.order to modify the recorded script. Testers who are
This web application is well designed and attractive. Itproficient in programming may want to manipulate their
has been well tested by your quality assurance group.scripts by editing the code. These testers would work
You have spent a lot of money marketing your newwith code written in a well known programming
website. The website now goes live. Very soon youlanguage such as JavaScript, VBScript or C. Once
realize that your new web application is unable toyour script has been created, you may wish to put
scale to your typical production load and the responsespecialized checks in place. These checks would
times and performance reach completelytypically be related specifically to the application under
unacceptable levels. Your web logs indicate that mosttest. For example you may wish to check that the
of your website visitors simply leave the new websiteresponse returned by a certain web request meets
before buying anything since its response times arecertain textual criteria. This would involve the
very poor. You start to panic, and one of your friendsplacement of a text checkpoint. A text checkpoint can
tells you that the reason your application does notverify that a given text segment is present or is not
perform adequately is that you do not have amplepresent in a specified portion of the web page. Once
hardware. Hearing this, you decide to add more serveryou have finished the creation of the script you would
hardware. While this has a small effect on the websitetypically test the script on your own machine as a
response time, it is still woefully inadequate. You soonsingle user to ensure that the test script runs as
realize that problem does not really lie with theintended. You are now ready to perform a
hardware but rather with the web application itself. Itperformance based load test. A good load testing tool
appears that your web application was not wellwill allow the tester to fine tune the execution of the
optimized for the typical peak loads. It becomestest. This means that it will allow the tester to choose
increasingly evident that most of your marketing dollarsthe number of concurrent virtual users, how the script
were wasted. Enter the world of performance andramps up, how it ramps down and for how long it runs.
load testing. In order to ensure that your applicationIt should also allow the tester to create various groups
scales as the load increases, it is necessary toof concurrent virtual users that have their own ramp
perform tests where your application is tested againstup, steady state and ramp down characteristics. A
a simulated load that closely resembles the actual loadgood testing tool will allow the user to distribute this
that it will be subjected to when it is exposed to theload over several machines since a single machine
outside world. It is important to distinguish betweenmay be only able to scale up to a few hundred users.
functional or regression testing and load orTo understand the behavior of the loaded web
performance testing. Functional and regression testingapplication, it is also important for the load testing tool
is used to automate a large number of scenarios toto enable the tester to track the performance
ensure that your website works as intended. Loadcharacteristics of external components such as
testing on the other hand gauges how well youroperating systems, web servers, databases etc. This
website performs when it is subjected to a large load,allows the user to see how the performance of his
such as a large number of simultaneous users. Loadapplication correlates with the performance
and performance testing require the use of automatedcharacteristics of the external component. This kind of
testing tools. It is impractical if not ridiculous to try toanalysis will allow the tester to pinpoint the root cause
simulate a load of 200 concurrent users by having aof performance bottlenecks fairly easily. During test
group of 200 folks sit on 200 machines and try toexecution the tester should be able to view the
perform operations at the same time. Before you canperformance graphs in real time for performance
begin any kind of load and performance testing you willmetrics such as the transaction response time, HTTP
need to identify the test scenarios you need toresponses per second grouped by HTTP code (e.g.
automate. A load testing tool will typically record web200, 404, 500 etc), passed transactions per second,
requests and responses based on user interactionsfailed transactions per second, total transactions per
with a website. As you perform various operations onsecond, hits per second, pages downloaded per
your website or application, the tool records all thesecond etc. The tester should also be able to
web transactions that take place. When you finishsimultaneously view the performance characteristics
recording, it generates an automated script.of the external components described above. For an
Alternatively you could use the tool to manually createoperating system this could be something like the %
the script. Typically testers will perform a combinationprocessor time, for a database it could be the number
of the two. They will use the recording mechanism toof writes per second. At the end of the test, the tester
generate the skeletal foundations of their scripts andwould typically be able to view and save this data as
then manually modify the scripts to take into accounta report for further analysis. Load and performance
specialized scenarios. The load testing tool should alsotesting allow you to simulate the behavior of your
allow the tester to simulate constrained bandwidthapplication under a typical production environment. This
situations. This means for example that it wouldwill allow you to plan your hardware deployment
accurately model users who would use the applicationstrategy effectively and ensure that your application
on a slow modem connection. It should also allow thewill deliver the expected performance characteristics.
tester to drive the script using random data from largeRolling out a web application without testing its
external data sets. Load testing scripts can be eitherperformance characteristics under expected
graphical or textual in nature. Good load andproduction loads would resemble crossing a road
performance testing tools do not require the testers toblindfolded. Load testing is an essential part of the
be programmers. Testers that are not familiar withdevelopment cycle of a web application and should
programming will work with scripts that can benever be overlooked.
graphically manipulated. Graphical scripts will typicallyUmair Khan is Founder and Chairman of Verisium, Inc.,
show all recorded steps in the form of a hierarchicala maker of vPerformer, an application for
structure and testers would modify any of the steps inperformance and load testing of web applications.