Why AJAX Push load testing?
The term Push Technology has been used to
indicate various technological solutions, all of them geared to reverse the classic web
model. The classic model (known as pull) has the client (browser) solicit
data from the server in a synchronous manner. This means that every time
the client needs a data update, it has to ask the server expressly to find out
if the data has changed and to obtain the new value.
The push model, on the other hand, has the client receive updates in an
asynchronous manner at the server's discretion, generally after expressing
interest in a certain type of information. In other words, the client becomes
a passive part of the system, receiving updated information as soon as it is
available on the server, without having to ask for it every so often. In this
sense, e-mail can be considered the oldest and most widespread form of
push technology on the Internet.
Like DHTML, AJAX, LAMP and SPA, AJAX Push is not a technology in itself, but a term that refers to the use of a group of technologies together.
Here are some frameworks working with Push :
- Ajax Push/ICEfaces: Ajax Push is a revolutionary capability of the ICEfaces framework that enables asynchronous, web-based push of presentation changes to the client browser based on server-side events. Any web application where users are observing dynamic
data can benefit, as Ajax Push brings that data alive with dynamic, instantaneous updates. When multiple users are interacting with the same data, Ajax Push enables real-time collaborative features, because everyone can be instantly aware of each others actions. Ajax Push is a fundamental capability of the ICEfaces framework, available from the very first release. The framework
handles all of the low-level intricacies of the push mechanism, providing the developer with a simple, pure Java API for application development. This frees the developer to focus on creative aspects of push-style application development.
- ZK Framework: ZK provides exceptionally robust and intuitive Direct Push technology enabling spontaneous updates sent by the server to the Ajax browsers and mobile devices. With ZK's Direct Push technology, responsive and dynamic enterprise solutions can be created at minimal cost.
- LightStreamer: Lightstreamer is a "Push Engine", i.e. a server software that is able to push (or stream) any textual data in real-time to any types of clients across the Internet. Lightstreamer hides all the complexity of pushing data in a scalable, efficient, reliable and portable way.
On the client side several APIs are provided, so that it is very easy to build Lightstreamer's clients (transforming your existing client or creating a new one from scratch). A special "Web 2.0" library makes it possible to update Web pages in real-time through a zero-install, applet-free client.
On the server side the provided APIs make it possible to build custom "Adapters" in order to integrate Lightstreamer with your data source. Basically, Lightstreamer can be considered a publish/subscribe middleware based on HTTP protocol.
- Comet Framework: Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.
How to test the performance?
- Polling: this involves the browser querying the server at regular intervals. Technically simple in its implementation, the method's downside is that it needlessly overloads the server and it is not very reactive.
- Streaming: the client sends a single request to the server, and the server responds when pertinent information is available, without closing the request. Thus, the server can again send information to the client using the same connection, without having to wait for a new request. Using this method, client data can be rapidly updated while the network traffic is kept minimized.
For best results when handling the performance of a streaming request, make sure your load testing tool measures the response time after each response data block sent by the server, without waiting for the end of the real HTTP request.
The load testing tool must also be able to keep the stream open when it plays a streaming request. This request will block the connection so the tool has to use a second connection for classic requests.
- Long Polling: a variation of the traditional polling technique and allows emulation of an information push from a server to a client. With long polling, the client requests information from the server in a similar way to a normal poll. However, if the server does not have any information available for the client, instead of sending an empty response,
the server holds the request and waits for some information to be available. Once the information becomes available (or after a suitable timeout), a complete response is sent to the client. The client will normally then immediately re-request information from the server, so that the server will almost always have an available waiting request that it can use to deliver data in response to an event.
Long polling is itself not a push technology, but can be used under circumstances where a real push is not possible.
The capacity of your load stress testing tool to manage these actions (polling, long polling, streaming) is a necessary condition to realize your performance's tests.
NeoLoad is a performance testing tool which supports Push technology testing
You've liked this content? Please recommend us on Google+1: