Skip to content

Transaction Controller

Configure the JMeter Transaction Controller logic controllers: properties, defaults, and practical usage notes for building reliable load tests.

Difficulty
intermediate
Guide type
reference
Estimated read time
2 min read
Last verified version
Verified JMeter 5.6

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.

Transaction Controller

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.

NameRequiredDescription
NameYesDescriptive name for this controller that is shown in the tree, and used to name the transaction.
Generate Parent SampleYesIf 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 sampleYesWhether to include timer, pre- and post-processing delays in the generated sample. Default is false
  • โ€œ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.
On this page