Concurrency Thread Group



This plugin was implemented by BlazeMeter Inc. and then contributed to community as Open Source.


This thread group offers simplified approach for configuring threads schedule. It is intended to maintain the level of concurrency, which means starting additional during the runtime threads if there's not enough of them running in parallel. Unlike standard Thread Group, it won't create all the threads upfront, so extra memory won't be used. It's a good repacement for Stepping Thread Group, since it allows threads to finish their job gracefully.

The preview graph reacts immediately to changes in the fields, showing you the planned concurrency schedule.

Use With Throughput Shaping Timer Feedback Function

When this thread group is used with Throughput Shaping Timer, you may replace Target Concurrency value with a call to the tstFeedback function to dynamically maintain thread count required to achieve target RPS. When using this approach, leave Concurrency Thread Group Ramp Up Time and Ramp-Up Steps Count fields blank, but be sure to set Hold Target Rate Time to a value equal or greater than the total Duration specified in the Throughput Shaping Timer schedule. See Throughput Shaping Timer Schedule Feedback Functionfor function usage details.

Configurable properties


For performance reasons, the component caches its properties value for "dynamictg.propertiescaching_validity" which defaults to 20 milliseconds.

If you know you'll never be changing dynamically those values, you can set this property to a negative value. If you need to refresh it at a higher rate, decrease its value but be aware of potential performance impacts.


This property is used to add sleep after all threads stopped. Defaults to 10 millis.


This property is used to avoid CPU spikes on rampup start when no Dynamic threads have been created yet. Defaults to 0 millis.