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 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.
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 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.
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 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.
Thus, 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.