%%
Last Updated:
- [[2021-04-19]]
%%
A transaction controller in [[JMeter]] is a container of requests that is used to define a [[JMeter Transaction]].
It is not the same as a [[Transaction groups|transaction group]], which is a collection of transaction controllers. [[Request|Requests]] are grouped into a [[JMeter Transaction|transaction]] using a transaction controller in JMeter. Transactions are then further grouped into [[JMeter Thread Group|thread groups]] for JMeter or [[Transaction groups|transaction groups]].
A **Transaction Controller** is a way to organise a group of requests that logically belong together. This has reporting ramifications. For example, you might have 10 requests for resources for the same page. Rather than reporting on each of those separately, it might make more sense to report the total response time for the entire page. To add it, right click on Thread Group > Add > Logic Controller > Transaction Controller.

The only setting I would recommend changing is “Generate parent sample”. The Transaction Controller comes with this unticked by default, but I would tick it so that JMeter reports on the metrics for the transaction, not the individual requests.