%%
date:: [[2022-07-04]],[[2022-10-14]]
%%
# [[Rendezvous]]
In [[Performance Testing]] and [[Load Testing]], rendezvous is a type of [[Test Scenarios|test scenario]] involving the synchronization of simulated load at a specific point, called a *rendezvous point*.
Below are some common conditions for a rendezvous point:
- A certain number or percentage of [[Number of virtual users|virtual users]] reach a given point in the test script
- A certain (absolute) time is reached
- A certain (relative) time since the start of the test is reached
- A certain step within the script has been reached.
The term comes from the French *rendez-vous*, which means "appointment".
## Why use rendezvous
Rendezvous points are useful when testing situations where users access an application or a functionality at exactly the same time. Here are some situations where a rendezvous might be useful:
- A retail sale goes live at exactly 12 midnight, and users can only start purchasing items after that time
- Bets can only be placed _before_ a horse race begins, after which punters can only refresh the status page to see if they've won
- Tickets are released for sale at a certain time
When a script involves a long user flow, it can also be useful to use rendezvous points to ensure that the virtual users all carry out an action at the same time. For example, if a script simulates a user that goes to a home page, browses pages, adds to a cart, and then purchases an item, running multiple virtual users carrying out that script may not necessarily achieve the desired throughput for purchasing an item. In this case, it may be safer to institute a rendezvous point just before the purchasing step.
An alternative to using a rendezvous point would be to hardcode think time, but [[Dynamic think time and pacing]] make scenarios more realistic. Using rendezvous points, think time and pacing can still be allowed to vary without compromising on [[Throughput]].
## Implementation
- [[k6 (tool)]]: [Rendezvous with k6](https://k6.io/blog/rendezvous-with-k6)
- [[JMeter]]: Synchronizing timer
- [[LoadRunner]]: Rendezvous via `lr_rendezvous()`