Push frameworks

Push frameworks are used when testing applications that use Push technology. This is a type of communication in which information is pushed by the server towards the browser, contrary to the normal Pull principle whereby the browser initiates the request for information.

Note: The use of Push frameworks requires the Push module, which is licensed.

Definition

Push frameworks can be used to automatically create User Paths that are compatible for use in a Push environment.

For an application to operate in Push mode, a Push channel is required through which the data is fed from the server to the client. Handling the Push channel requires special tools and concepts specific to this particular type of application. Each framework allows creating User Paths, after recording, that take into account the Push channel.

Note: As any other framework, a Push framework enables the automation of parameter extraction and replacement. For more information, see Frameworks.

How it works

  1. During the recording, NeoLoad detects that the recorded application is using a Push framework.

  2. At the end of the recording, NeoLoad offers to create a modified copy of the User Path that has just been recorded.

  3. This User Path is named <original name>_<framework name>.

  4. This copy contains all the changes specific to the detected Push framework and that will help easily design the User Path and enable a playback as realistic as possible.

    The User Path tree contains now two User Paths:

  • the original User Path containing the raw recording data. This is a potential source of data for developing the User Path actually used. It may be deleted at any time.

  • the NeoLoad-modified User Path. You are strongly advised to use this User Path as a basis for ongoing design.

Modified User Paths

This section describes how modified User Paths are created.

There are two main categories of Push application, those that use polling and those that use streaming. The modifications NeoLoad makes to a User Path depend entirely on the type of Push application concerned.

Polling

Polling is a mechanism whereby a request is sent by the client to the server at regular intervals. In return, the server updates the status of each connected client. Between two polling requests, the server stores the updates sent to the client in its memory until the next polling request is received.

How NeoLoad handles polling

NeoLoad groups all the polling requests into a single polling request, which is executed several times. The request is then included in a loop.

NeoLoad inserts a delay between two executions of this same request representing the interval between two polling requests. This delay is based on the average time interval between two polling requests in the original User Path.

Since handling a polling request is a blocking process (loop on the request), NeoLoad inserts a fork action in order to create a parallel execution thread, which allows the user actions to continue their execution in parallel. For more information, see Fork.

Lastly, NeoLoad determines the interval between the last non-polling request and the last polling request and inserts the end of polling delay. It also adds a variable modifier that triggers the exiting of the loop created earlier, once polling is finished.

For more information about handling polling requests in NeoLoad, see Polling requests.

Streaming

Streaming is a mechanism whereby a holding request is sent by the client to the server. In other words, the client never completely finishes reading the server response to the request, the server sending back several separate response messages. The client is able to read these messages and interpret the instructions received. Once they have been executed, it waits for new instructions by returning to read the next part of the response.

How NeoLoad handles streaming

NeoLoad uses a specific streaming request, which blocks the connection until the server closes the socket. For each Framework that supports streaming, NeoLoad is able to separate the response messages sent by the server, thus allowing it to handle the actions to be carried out upon the arrival of each message.

Since a call to a streaming request is a blocking process, NeoLoad inserts a fork action in order to create a parallel execution thread, which allows the user actions to continue their execution in parallel. For more information, see Fork

For more information about handling streaming requests in NeoLoad, see Streaming requests.

Push messages

Push requests (polling request -type or streaming request -type) both work on the same principle: each message sent by the server is processed by the Push Message design element, which allows defining the actions to be carried out when a certain type of message is received. For more information, see Push messages.

During recording,NeoLoad detects the different types of message received from the server and creates the corresponding Push Messages elements and places them in a special-purpose Push request.

Frameworks

For information on how frameworks affect the User Path, see Frameworks.