Share this page

# Cross-Vuser transactions

Cross-Vuser transactions are transactions that allow you to measure the duration of a process that involves multiple Vusers. For example, you can create a cross-Vuser transaction to determine how long it took the receiving party to get the information that was sent. This transaction type originates from one Vuser and ends at another.

The Vusers who start and end the transaction (one-on-one), form a cross-Vuser pair:

A cross-Vuser transaction is not limited to two Vusers. It also includes broadcasting, in which one Vuser sends a message to many Vusers. In this case, the broadcaster, who begins the transaction, and the receivers, who end the transaction, together form a cross-Vuser group:

For both a cross-Vuser pair and a cross-Vuser group, the transaction is initiated by a single Vuser.

You must define a transaction ID to serve as an identifier for each cross-Vuser pair or group. The ID must be a string that uniquely identifies the pair or group. All Vusers in a pair or group share the same identifier.

It is recommended that you create a standard for the transaction ID . The ID string should indicate whether the cross-Vuser transaction is related to a pair or group.

In the above example, in Transaction1, if the sender is "alpha", the receiver is "beta", and the message is "message1", then a logical ID string could be alpha_beta_message1. In Transaction4, if the sender is "alpha", then a logical ID string could be alpha_broadcast.

The following examples illustrate typical scenarios for cross-Vuser transactions:

- The time it took from when one user sent an email to when another user received it.
- The time it took for users to see a message posted on a social network.

Use the following guidelines when creating a script with cross-Vuser transactions:

- Cross-Vuser transactions do not calculate think time, waste time, and so forth—only duration time is recorded.
- Cross-Vuser transaction data is not used by the Controller's transaction monitors.
- OpenText Professional Performance Engineering cannot detect the status of cross-Vuser transactions.

To create a cross-Vuser transaction

1. Open the Steps Toolbox (from VuGen's View menu) and manually add lr_start_cross_vuser_transaction functions at the beginning of the Action section. For example:

   `lr_start_cross_vuser_transaction("CVTName1", "{CVTParam}");`
   `lr_start_cross_vuser_transaction("CVTName2", "{CVTParam}");`

2. Drag in lr_end_cross_vuser_transaction functions to your script to mark the end of the transactions.
3. Fill in the Transaction name and Transaction ID fields. Make sure you create a unique ID for your transaction. For guidelines, see the Cross-Vuser transactions. Note that you can parameterize the transaction ID as any other standard parameter. For details, see Create parameters.
4. Replay the script in VuGen to check its functionality. Check the Output log for any error messages.
5. To run the script in Controller, configure the post-collation settings:
   1. In Controller, select Tools > Options and click the Execution tab.
   2. In the Post Collate Command area, enter the following string: CrossVuserTransProcess.exe "%ResultDir%".
6. Run the script in Controller. Check the Errors tab for errors.
7. Open the results in Analysis. Note that the Vuser ID shown in the Analysis, is not related to the transaction ID you assigned to the cross-Vuser transaction.
8. If you need to debug the test, refer to the crossvusertrans_error_report.txt file in the results folder. If your results folder does not contain the crossvusertrans_error_report.txt, CrossVuserTrans.exe, and CrossVuserTrans.map files, make sure that the Post Collate Command is set properly on the machine (described above).

Back to top

See also:

- Using transactions

https://admhelp.microfocus.com VuGen,Professional Performance Engineering,Performance Engineering for Developers 8942
Tips to improve your search results... OpenText™ Virtual User Generator Help Center OpenText™ VuGen Help 26.1 All View Local Help Center View Online Help Center Version: