Go to: /articles/2009/01/15/ for other articles.
Performance Testing for AJAX-based ApplicationsABSTRACTThe AJAX model of development for Web applications has rapidly gained a lot of popularity because of its promise of bringing the richness and responsiveness of desktop applications to the web. AJAX implementations are fundamentally different from other web implementations in two respects � they make asynchronous requests for parts of the web page. Techniques routinely used for performance testing of traditional web applications need to be modified and enhanced to suit the needs of AJAX-based applications. Using Google's "Google Select" service as a case study we examine the unique challenges of carrying out performance testing of AJAX-based applications and offer suggestions for overcoming them. 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) * business case for using AJAX * usability of web appli cations using AJAX * optimizing network bandwidth uti lization using AJAX for application development 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:
|