iSnare.com - Free Content Articles Directory
Authors Contents [Advanced Search][Add OpenSearch][Job Search]
Distribute your articles to thousands of article sites for only $2 and below! Read more...

Index  Computers and Technology
 

Website Performance And Load Testing

 
[ Contact the Author] [ Send to a Friend] [ Article Publisher] [Make PDF] [ Print] [ Bookmark & Share]
 
Read our Terms of Service before reprinting this article. The submitter specified above has claimed the rights to this article.
Umair Khan

Your company is rolling out its new web application. This web application is well designed and attractive. It has been well tested by your quality assurance group. You have spent a lot of money marketing your new website. The website now goes live. Very soon you realize that your new web application is unable to scale to your typical production load and the response times and performance reach completely unacceptable levels. Your web logs indicate that most of your website visitors simply leave the new website before buying anything since its response times are very poor. You start to panic, and one of your friends tells you that the reason your application does not perform adequately is that you do not have ample hardware. Hearing this, you decide to add more server hardware. While this has a small effect on the website response time, it is still woefully inadequate. You soon realize that problem does not really lie with the hardware but rather with the web application itself. It appears that your web application was not well optimized for the typical peak loads. It becomes increasingly evident that most of your marketing dollars were wasted.

Enter the world of performance and load testing. In order to ensure that your application scales as the load increases, it is necessary to perform tests where your application is tested against a simulated load that closely resembles the actual load that it will be subjected to when it is exposed to the outside world.

It is important to distinguish between functional or regression testing and load or performance testing. Functional and regression testing is used to automate a large number of scenarios to ensure that your website works as intended. Load testing on the other hand gauges how well your website performs when it is subjected to a large load, such as a large number of simultaneous users.

Load and performance testing require the use of automated testing tools. It is impractical if not ridiculous to try to simulate a load of 200 concurrent users by having a group of 200 folks sit on 200 machines and try to perform operations at the same time. Before you can begin any kind of load and performance testing you will need to identify the test scenarios you need to automate. A load testing tool will typically record web requests and responses based on user interactions with a website. As you perform various operations on your website or application, the tool records all the web transactions that take place. When you finish recording, it generates an automated script. Alternatively you could use the tool to manually create the script. Typically testers will perform a combination of the two. They will use the recording mechanism to generate the skeletal foundations of their scripts and then manually modify the scripts to take into account specialized scenarios. The load testing tool should also allow the tester to simulate constrained bandwidth situations. This means for example that it would accurately model users who would use the application on a slow modem connection. It should also allow the tester to drive the script using random data from large external data sets.

Load testing scripts can be either graphical or textual in nature. Good load and performance testing tools do not require the testers to be programmers. Testers that are not familiar with programming will work with scripts that can be graphically manipulated. Graphical scripts will typically show all recorded steps in the form of a hierarchical structure and testers would modify any of the steps in order to modify the recorded script. Testers who are proficient in programming may want to manipulate their scripts by editing the code. These testers would work with code written in a well known programming language such as JavaScript, VBScript or C.

Once your script has been created, you may wish to put specialized checks in place. These checks would typically be related specifically to the application under test. For example you may wish to check that the response returned by a certain web request meets certain textual criteria. This would involve the placement of a text checkpoint. A text checkpoint can verify that a given text segment is present or is not present in a specified portion of the web page. Once you have finished the creation of the script you would typically test the script on your own machine as a single user to ensure that the test script runs as intended.

You are now ready to perform a performance based load test. A good load testing tool will allow the tester to fine tune the execution of the test. This means that it will allow the tester to choose the number of concurrent virtual users, how the script ramps up, how it ramps down and for how long it runs. It should also allow the tester to create various groups of concurrent virtual users that have their own ramp up, steady state and ramp down characteristics. A good testing tool will allow the user to distribute this load over several machines since a single machine may be only able to scale up to a few hundred users.

To understand the behavior of the loaded web application, it is also important for the load testing tool to enable the tester to track the performance characteristics of external components such as operating systems, web servers, databases etc. This allows the user to see how the performance of his application correlates with the performance characteristics of the external component. This kind of analysis will allow the tester to pinpoint the root cause of performance bottlenecks fairly easily.

During test execution the tester should be able to view the performance graphs in real time for performance metrics such as the transaction response time, HTTP responses per second grouped by HTTP code (e.g. 200, 404, 500 etc), passed transactions per second, failed transactions per second, total transactions per second, hits per second, pages downloaded per second etc. The tester should also be able to simultaneously view the performance characteristics of the external components described above. For an operating system this could be something like the % processor time, for a database it could be the number of writes per second. At the end of the test, the tester would typically be able to view and save this data as a report for further analysis.

Load and performance testing allow you to simulate the behavior of your application under a typical production environment. This will allow you to plan your hardware deployment strategy effectively and ensure that your application will deliver the expected performance characteristics. Rolling out a web application without testing its performance characteristics under expected production loads would resemble crossing a road blindfolded. Load testing is an essential part of the development cycle of a web application and should never be overlooked.

Important NoticeDISCLAIMER: All information, content, and data in this article are sole opinions and/or findings of the individual user or organization that registered and submitted this article at Isnare.com without any fee. The article is strictly for educational or entertainment purposes only and should not be used in any way, implemented or applied without consultation from a professional. We at Isnare.com do not, in anyway, contribute or include our own findings, facts and opinions in any articles presented in this site. Publishing this article does not constitute Isnare.com's support or sponsorship for this article. Isnare.com is an article publishing service. Please read our Terms of Service for more information.

Umair Khan is Founder and Chairman of Verisium, Inc., a maker of vPerformer, an application for performance and load testing of web applications.

Article Tags: performance [See Dictionary], testing [See Dictionary], web [See Dictionary]
Got a question about this article? Ask the community!
Article published on September 23, 2007 at Isnare.com
 
Rate [Ratings: 4.75 / 5] [Votes: 4]

Web Design, Development And Testing
Submitted by: Umair Khan

Many organizations are interested in building web applications for their business but are unaware of the various steps that are needed to build a compelling web application...

Martin Yale 1217A Autofolder Review
Submitted by: Jeff McRitchie

For years the standard in paper folding machines, the Martin Yale Intimus 1217A is well-known in the small print industry for being a solid and flexible machine...

It’s a Mod Chip World!
Submitted by: Michiel Van Kets

No Nintendo Wii game console seems complete without a mod chip installation and with today’s latest mod chip innovations it’s easier than ever to buy and install your own Wii modification chip...

Martin Yale 400 Paper Jogging Machine Review
Submitted by: Jeff McRitchie

Any business that produces and binds a lot of documents on a regular basis should have a paper jogging machine on hand...

Laminating Film For Beginners
Submitted by: Jeff McRitchie

Roll laminators are awesome machines, but sometimes it can be difficult to know what supplies you need to use with your new laminating system...

PC200 Spiral Coil Binding Machine Review
Submitted by: Jeff McRitchie

The PC200 is positioned as a low-cost spiral coil binding solution for low volume users Here we take a look at this machine and examine its strengths and weaknesses...

Martin Yale 700E Paper Cutter Review
Submitted by: Jeff McRitchie

A commercial-quality paper cutter, the Martin Yale 700E is meant to be used in smaller print shops or in-house production floors for medium to large businesses...

Rhino Tuff CI 3000 Coil Inserter Review
Submitted by: Jeff McRitchie

Rhino's CI 3000 features a unique design that purports to make it easier to do spiral coil book binding...

Lamitek PhotoPro 13 Laminator Review
Submitted by: Jeff McRitchie

There are many laminators available and sometimes it is hard to know which one you should buy It is always a good idea to get a versatile machine, such as one that can do both hot and cold lamination, while also providing a crystal-clear finish...

Lamitek Photosmart 13 Laminator Review
Submitted by: Jeff McRitchie

The emergence and increasing numbers if digital printers has sparked an interest in laminating machines that can work with high-quality photos and/or glossier printed pages...

PC200E Spiral Coil Binding Machine Review
Submitted by: Jeff McRitchie

As the least expensive spiral coil binding machine that offers disengageable dies and an electric coil inserter, the PC200E is well positioned in the marketplace...

Be Careful When Buying Cheap Adobe Software
Submitted by: Adrianna Noton

When individuals are looking to buy software they always love finding cheap Adobe software However are these really great prices too good to be true...

What is the Difference Between Standard and High Yield Toner Cartridges?
Submitted by: Adriana N

There have been improvements in the manufacturing of printer toner cartridges Toner found in a cartridge is dry powder blended with a polymer that sticks on to the paper as printing takes place...

Inverted Microscope: A Great Tool For Studying Living Cells
Submitted by: Edison Rammsey

When you hear the term inverted microscope, you probably think of observing samples from under a microscope...

Digital Microscope: Eight Reasons Why You Must Have it Now!
Submitted by: Edison Rammsey

Welcome the Digital Age through a digital microscope With its eight benefits to be enjoyed, all other microscope will look small in comparison, pun intended...

Should Small Businesses Adapt to the Point of Sale System?
Submitted by: Adrianna Noton

In earlier times, a cash register along with a pen and notebook were sufficient means for processing and keeping track of transactions...

Isnare.com Footer Divider

© 2004-2009. Isnare Free Articles - An Isnare Online Technologies Free Articles Project. All Rights Reserved.   Privacy Policy