Skip to content

Throughput Controller

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

Difficulty
intermediate
Guide type
reference
Estimated read time
1 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 Throughput Controller runs its children only a percentage of the time (or an exact total count), letting you model realistic traffic mixes โ€” e.g. 70% browse, 20% search, 10% checkout โ€” inside one Thread Group.

Throughput Controller

The Throughput Controller allows the user to control how often it is executed. There are two modes:

  • percent execution
  • total executions

Percent executions : causes the controller to execute a certain percentage of the iterations through the test plan.

Total executions : causes the controller to stop executing after a certain number of executions have occurred.

Like the Once Only Controller, this setting is reset when a parent Loop Controller restarts.

NameRequiredDescription
NameNoDescriptive name for this controller that is shown in the tree.
Execution StyleYesWhether the controller will run in percent executions or total executions mode.
ThroughputYesA number. For percent execution mode, a number from 0-100 that indicates the percentage of times the controller will execute. โ€œ50โ€ means the controller will execute during half the iterations through the test plan. For total execution mode, the number indicates the total number of times the controller will execute.
Per UserNoIf checked, per user will cause the controller to calculate whether it should execute on a per user (per thread) basis. If unchecked, then the calculation will be global for all users. For example, if using total execution mode, and uncheck โ€œper userโ€, then the number given for throughput will be the total number of executions made. If โ€œper userโ€ is checked, then the total number of executions would be the number of users times the number given for throughput.
  • โ€œPercent Executionโ€ is evaluated per-thread, per-loop โ€” itโ€™s a probability each time the controller is reached, not a hard global ratio across the whole test. Over a long run the actual percentage converges close to the target, but short tests can drift.
  • โ€œTotal Executionsโ€ runs the children an exact number of times total across all threads, then goes idle โ€” different semantics from percent mode, useful for โ€œrun this exactly N times regardless of load.โ€
  • If overall throughput looks stuck regardless of this controllerโ€™s settings, the bottleneck is usually elsewhere (threads, pacing, or the target service) โ€” see Throughput stuck.
  • Combine with a Constant Throughput Timer when you need an absolute requests/minute cap rather than a relative execution ratio.
On this page