Rendezvous
Use Rendezvous points
Rendezvous points are used to synchronize a number of Virtual Users to carry out tasks at the same moment, in order to create an intense load on the server at a specific point in the application being tested.
About Rendezvous
When running a test scenario, it can be useful to ensure that a certain number of Virtual Users carry out certain tasks simultaneously. This can be done using Rendezvous points. A rendezvous point allows to create a specific load spike at a given point in the Virtual User execution.
For example, you might want to assess the performance of a web application for managing bank accounts when ten users simultaneously check their account balance. To simulate this functional case, you must force the Virtual Users to carry out the task at exactly the same time.
A Rendezvous works a little like the line at a fairground ride:
- Users enter the line and wait their turn. While they are in the line, they are not using the other rides.
- When a car arrives, it relieves the line of a number of users equal to the car capacity. It is what is known as the release policy.
- If a new user takes too long to arrive, the users in line then have access to the next ride. This is a timeout.
Create a Rendezvous
To create a rendezvous, you need to have read and understood the following:
- To create a rendezvous point
- In the User Paths tree, right-click on the Container (Transaction, Loop, etc.) into which you want to insert the rendezvous.
- Select Insert as child, then Rendezvous.
Define the attributes of a Rendezvous action
A rendezvous action has the following attributes:
- Name: identifies the rendezvous specified by the action.
- Description: completes the rendezvous definition, for information purposes.
A rendezvous point is identified by its name. Several Rendezvous logical actions may use the same rendezvous point and for that, they must use the same name.
Once the rendezvous points have been configured, you must configure the rendezvous behavior when the scenario is run.
Configure a Rendezvous scenario
Overview
A rendezvous behavior is configured for each scenario. Its attributes are:
- A state: enabled or disabled. A rendezvous may be enabled/disabled.
- A release policy: defines the condition to be met before the users lined up at the rendezvous are released
There is a one-to-one relationship between a rendezvous point name and a rendezvous. Each unique rendezvous action name corresponds to one specific rendezvous.
Enable/Disable a Rendezvous
- To enable or disable a rendezvous (from Scenarios)
- Go to the Scenarios tab in the project Runtime section.
- Select the scenario to be changed.
- Click Advanced.
- In the displayed window, select Rendezvous policy.
- In the list of rendezvous, check or un-check the rendezvous to enable or disable it.
- To enable or disable a rendezvous (from Virtual Users)
- Go to the Virtual Users tab in the project Design section.
- Select the rendezvous action you want to use.
- Click on the Edit the scenario rendezvous policy blue link.
- If the project contains several scenarios, select the scenario you want to change and click OK.
- In the list of rendezvous, check or un-check the rendezvous to enable or disable it.
If NeoLoad displays a warning that the rendezvous is not associated with the selected scenario, it means that the Virtual User containing the rendezvous is not in one of the Populations linked to the scenario.
A scenario contains Populations; Populations contain Virtual Users; a Virtual User contains rendezvous points.
Define a Rendezvous release policy
A release policy is defined according to the following attributes:
- A Release Condition: the condition that must be met before the users lined up at a Rendezvous are released.
- A Timeout: the maximum wait time between two consecutive users arriving at the Rendezvous. If no user arrives at the Rendezvous within that time period, all the users lined up at the Rendezvous are released. The timeout is expressed in seconds.
The timeout is local to the Load Generator. When a Rendezvous on a Load Generator times out, only the users lined up at the Rendezvous on that Load Generator will be released. Other Load Generators with users lined up at the same Rendezvous are not affected.
The following release conditions can be set:
- Release when XX% of the users have arrived at the rendezvous: XX is the ratio of the number of users lined up at the Rendezvous against the number of users currently being executed and eligible for the rendezvous. A user is eligible for the rendezvous if its execution chain contains a Rendezvous point with the same name as the Rendezvous .
- Release when XX users have arrived at the rendezvous: XX is a fixed number of users.
- Release manually: When this option is selected, you will need to release the Virtual Users using JavaScript actions. See the documentation on the Class RendezvousManager.
Fulfillment of the release condition is based on the overall state of the test Rendezvous including when several Load Generators are used.
For example, a test includes a Rendezvous that releases when 100 users have arrived, and the scenario is being run using two Load Generators, LG1 and LG2. LG1 and LG2 have 30 and 70 lined-up users respectively. The condition is fulfilled, since 30 + 70 = 100. The Controller will send a release order to each of the Load Generators, thus releasing a total of 100 users spread between the two Load Generators.
Frequently Asked Questions
How are the released users allocated?
When the Controller decides to release users from a Rendezvous, it dispatches the number of users to be released equally between Load Generators, based on their current load.
Several users have the same Rendezvous (Rendezvous points with the same name). How are the lined-up users released?
Each Load Generator maintains an arrivals list of Virtual Users for each rendezvous. Several rendezvous points with the same name are considered as being the one and same rendezvous. Therefore, the users are released in the same order as they arrived at the rendezvous.
Home