Performance Testing for AJAX-based Applications
ABSTRACT
The 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:
www.aztecsoft.com
|