Adobe Flex/AMF: Handle polling and streaming

This tutorial describes how to design a realistic Virtual User containing Adobe Flex/AMF requests based on Adobe Live Cycle Data Services (LCDS). It shows the modeling in NeoLoad of the two standard ways of refreshing data from the Flash client, notably polling and streaming (also called Push). At the end of the tutorial, you will also find an example of advanced design, with details on how to extract and interpret data returned by a server through a streaming channel.

To gain the most from this tutorial, it is recommended to read Adobe Flex/AMF: Handle external libraries<in_pdf_tuto>.

Understand the context

NeoLoad allows you to load test AMF requests. These requests are based on standard HTTP interactions. In most web applications, the request for data comes from the client (the web browser). In other words, it is the user who requests information either by clicking on a link or performing some other action. In some cases however, the server needs to send information to the client without the user requesting it. Typical examples of this are a server-initiated events such as alert messages and data updates.

Flex servers using the AMF protocol update client data in two ways:

  1. the polling method: This involves the browser querying the server at regular intervals. Technically simple in its implementation, the method downside is that it needlessly overloads the server and it is not very reactive.
  2. the streaming, or Push method: In this case, 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.

Polling and streaming require the use of specific NeoLoad requests to be able to handle these transaction modes. For more information, see Modified User Paths.