Configure the JMeter Transaction Controller logic controllers: properties, defaults, and practical usage notes for building reliable load tests.
Part of the Logic Controllers category. Also documented in context in the full Component Reference.
TL;DR: the Transaction Controller groups several samplers into one logical โtransactionโ and reports their combined elapsed time as a single result โ use it to measure a multi-request business flow (login + fetch + checkout) as one number instead of N separate ones.

The Transaction Controller generates an additional sample which measures the overall time taken to perform the nested test elements.
There are two modes of operation:
-
additional sample is added after the nested samples
-
additional sample is added as a parent of the nested samples
The generated sample time includes all the times for the nested samplers excluding by default (since 2.11) timers and processing time of pre/post processors unless checkbox โ
Include duration of timer and pre-post processors in generated sampleโ is checked. 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.The generated sample is only regarded as successful if all its sub-samples are successful.
In parent mode, the individual samples can still be seen in the Tree View Listener, but no longer appear as separate entries in other Listeners. Also, the sub-samples do not appear in CSV log files, but they can be saved to XML files.
| Name | Required | Description |
|---|---|---|
| Name | Yes | Descriptive name for this controller that is shown in the tree, and used to name the transaction. |
| Generate Parent Sample | Yes | If checked, then the sample is generated as a parent of the other samples, otherwise the sample is generated as an independent sample. |
| Include duration of timer and pre-post processors in generated sample | Yes | Whether to include timer, pre- and post-processing delays in the generated sample. Default is false |
Common gotchas
Section titled โCommon gotchasโ- โGenerate parent sampleโ must be checked to get the combined transaction result; unchecked, itโs purely a grouping/organizational element in the tree and reports nothing extra.
- โInclude duration of timers and pre-post processorsโ changes what counts toward the transaction time โ leave it on if think time between the grouped requests is part of what youโre measuring (real user flow time), off if you only care about server-side request time.
- Nesting Transaction Controllers works, but deeply nested transactions make listener output harder to read โ one level per logical business flow is usually enough.
- Pair with SLA thresholds on the transactionโs own elapsed time when the business flow (not the individual request) is what has an SLA.
Related
Section titled โRelatedโOn this page
On this page