The Transaction Controller generates an additional sample which measures the overall time taken to perform the nested test elements.
Note that this time by default includes all processing within the controller scope, not just the samples; this can be changed by unchecking “Include duration of timer and pre-post processors in generated sample“.
The generated sample time includes all the times for the nested samplers, and any timers etc. Depending on the clock resolution, it may be slightly longer than the sum of the individual samplers plus timers. The clock might tick after the controller recorded the start time but before the first sample starts. Similarly at the end.
It is only regarded successful if all the sub samples are successful.
If “Generate Parent sample” is selected individual samples no longer appear as separate entities in listeners except tree listener. Also, the sub-samples do not appear in CSV log files, but they can be saved to XML files.
Benefit of having Transaction controller
- It will help you to get response time of the page, provided you have grouped all the elements of the page correctly.
- Do not consider this as browser page load time. JMeter does not emulate browser behavior.
There is an option in JMeter 2.5+ to get close to browser rendering time by using thread pool option.
In JMeter 2.5+ there is an option to emulate browser behavior of parallel connections. As in browser all resources / page elements are not loaded sequentially.
For more detail on this feature, click here to view my post on concurrent pool size and browser emulation.