Synchronization refers to waiting for windows and objects to become available before executing an action. This is necessary when recording Citrix scripts because, for example, if a step in a script opens a window, and the next step performs an action in that window, the second step cannot be implemented until the window opens. In order to ensure that VuGen does not replay the script incorrectly, it automatically generates functions that synchronize the script by waiting for windows or objects to become available. In addition, you can add synchronization functions manually.
To choose the most suitable synchronization mechanisms for a particular use-case scenario, it is crucial to understand the benefits and drawbacks of the different synchronization mechanisms:
- Bitmap synchronization (Exact level). The fastest, most reliable, and least consuming synchronization operation. Should be used by default.
- Bitmap synchronization (non-Exact levels). Consumes additional resources of the load generator machine. In general, this mechanism is not recommended unless you specifically know that you need it for a particular purpose.
- _obj_ sync functions. Might be a reasonably good way to improve script stability but requires Agent presence on the server side, which cannot always be achieved. Also creates additional traffic to the server (this should not be an issue but should be at least considered).
- _text. Same as _obj_. Might not be supported for some applications or technologies.
- _ocr_. Use with caution! Consumes significant amounts of hardware resources on the load generator machine.
Exact-level bitmap synchronization should cover most use-case scenarios. Other synchronization mechanism usage should be properly motivated.
For more information about _text and _ocr functions, see the relevant Synchronization Functions in the Function Reference.