Example: Sub-transactions

This example shows how the durations of nested sub-transactions are reported.

Several sub-transactions are started with start_sub_transaction and ended with end_sub_transaction. These sub-transactions are nested and overlapped in various ways. The output below the example shows that the duration of each sub-transaction is the time between the start and end of that individual sub-transaction, entirely independent of what other sub-transactions are active at the same time.

Dim i as Integer
Dim baseIter as Integer
baseIt(er = 1000)
' Start Parent
lr.start_transaction "Master"

' Start first sub transaction
lr.start_sub_transaction "FirstT", "Master" 

' Start nested child of first sub transaction
lr.start_sub_transaction "FirstT_Child1", "FirstT" 

' Pause between scripts
lr.think_time 1.5

' Start a sub transaction while FirstT_Child1 is still active.
lr.start_sub_transaction "FirstT_OverLap_Child1And2", "FirstT" 

' Create some elapsed time
lr.think_time 0.5

' End FirstT_Child1. 
' FirstT_OverLap_Child1And2 is still active
lr.end_sub_transaction "FirstT_Child1",lr.AUTO 

' Start second nested child
lr.start_sub_transaction "FirstT_Child2", "FirstT" 

' Pause between scripts
lr.think_time 1

' End the overlapping sub transaction
lr.end_sub_transaction "FirstT_OverLap_Child1And2",lr.AUTO 

' Pause between scripts
lr.think_time 1.75
lr.end_sub_transaction "FirstT_Child2",lr.AUTO 
lr.end_sub_transaction "FirstT",lr.AUTO 

' Start a second sub transaction
lr.start_sub_transaction "SecondT", "Master"     

' Pause between scripts
lr.think_time 2
lr.end_sub_transaction "SecondT",lr.AUTO 
lr.end_transaction "Master", lr.AUTO 
 Output:
Notify: Transaction Master started.
Notify: Transaction FirstT started.
Notify: Transaction FirstT_Child1 started.
lr_think_time: 1.50 seconds.
Notify: Transaction FirstT_OverLap_Child1And2 started.
lr_think_time: 0.50 seconds.
Notify: Transaction FirstT_Child1 ended with Pass status (Duration: 2.0029 Think Time: 2.0029).
Notify: Transaction FirstT_Child2 started.
lr_think_time: 1.00 seconds.
Notify: Transaction FirstT_OverLap_Child1And2 ended with Pass status (Duration: 1.5022 Think Time: 1.5022).
lr_think_time: 1.75 seconds.
Notify: Transaction FirstT_Child2 ended with Pass status (Duration: 2.7540 Think Time: 2.7540).
Notify: Transaction FirstT ended with Pass status (Duration: 4.7669 Think Time: 4.7568).
Notify: Transaction SecondT started.
lr_think_time: 2.00 seconds.
Notify: Transaction SecondT ended with Pass status (Duration: 2.0029 Think Time: 2.0029).
Notify: Transaction Master ended with Pass status (Duration: 6.7797 Think Time: 6.7597).