Performance Testing for Ajax-based Applications

By: Aztecsoft Limited

INTRODUCTION

AJAX (Asynchronous JavaScript and XML) is an approach to web programming that has been enjoying great popularity ever since it was used by Google for many of its applications, notably "Google Suggest" and "Google Maps". There has been a lot of discussion about a number of issues related to AJAX including:

* tools and techniques for implementing AJAX (e.g. Ruby on Rai ls, DWR, Prototype, Sajax,
* Ajax.net) [1,3]
* business case for using AJAX [2]
* usability of web appli cations using AJAX [5]
* optimizing network bandwidth uti lization using AJAX for application development[6]

Considering that one of the key drivers for the rapid adoption of AJAX has been its promise of superior performance, it is surprising that there has not been much discussion of AJAX-specific performance testing. When we studied this in some detai l, we found that AJAX applications indeed present some unique issues and challenges, which we discuss in this paper.

AJAX APPLICATION VS NORMAL WEB APPLICATION

* A typical web application works as follows:
* User supplies input to browser (e.g. types in a URL, clicks on a hyperlink, submits a form)
* Browser sends a request for the URL to the server
* Web server responds wi th a page
* Browser sends more requests for embedded objects (e.g. images)
* Browser renders the page (including embedded objects)
* Browser waits for user's next input and then goes back to the first step.

The key points to note here are:

* The browser issues requests for entire pages and the entire page gets refreshed as a result of this action
* These requests occur as a direct consequence of user actions.

In contrast to this, Ajax applications make a number of asynchronous web requests for parts of the current webpage. These requests are issued by a piece of client-side code that is executed in the browser context. This client-side code is usually implemented in JavaScript and is called the AJAX engine.

Continue reading at:

Programming
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 

» More on Programming