Enum DslThroughputTimer.ThroughputMode
- java.lang.Object
-
- java.lang.Enum<DslThroughputTimer.ThroughputMode>
-
- us.abstracta.jmeter.javadsl.core.timers.DslThroughputTimer.ThroughputMode
-
- All Implemented Interfaces:
Serializable,Comparable<DslThroughputTimer.ThroughputMode>,EnumParam.EnumPropertyValue
- Enclosing class:
- DslThroughputTimer
public static enum DslThroughputTimer.ThroughputMode extends Enum<DslThroughputTimer.ThroughputMode> implements EnumParam.EnumPropertyValue
Specifies the calculation/control method to control the configured throughput.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description ALL_THREADS_ACCURATEThe configured throughput is controlled checking the last time each active thread executed.ALL_THREADS_EVENThe configured throughput will be divided among active threads (across thread groups) and each thread will control that part of the throughput regardless if other threads were far from expected throughput.PER_THREADThe configured throughput specifies the maximum throughput for each thread.THREAD_GROUP_ACCURATEThe configured throughput is controlled checking the last time each active thread, in the thread group, executed.THREAD_GROUP_EVENThe configured throughput will be divided among active threads of the current thread group (ignoring other thread groups) and each thread will control that part of the throughput regardless if other threads in the same thread group were far from expected throughput.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StringpropertyValue()static DslThroughputTimer.ThroughputModevalueOf(String name)Returns the enum constant of this type with the specified name.static DslThroughputTimer.ThroughputMode[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
PER_THREAD
public static final DslThroughputTimer.ThroughputMode PER_THREAD
The configured throughput specifies the maximum throughput for each thread. E.g.: if you configured 10tpm, and you have 10 active threads, then the total throughput might be 10*10=100 tpm.This is the same as JMeter option "this thread only".
-
ALL_THREADS_EVEN
public static final DslThroughputTimer.ThroughputMode ALL_THREADS_EVEN
The configured throughput will be divided among active threads (across thread groups) and each thread will control that part of the throughput regardless if other threads were far from expected throughput. E.g.: if you place the timer at test plan level, configure 10 tpm, have 2 thread groups with 5 active threads each, then each thread will try to achieve 1tpm. If one thread is slower than the rest, the other threads will not take that into account to adjust their throughput to try to achieve the expected total throughput.Check
ALL_THREADS_ACCURATEas an alternative.In general use this mode only on test plan level timers, otherwise it might lead to confusion or unexpected behavior. E.g.: avoid having timers inside thread groups with ALL_THREADS_EVEN. Prefer in such scenarios
THREAD_GROUP_EVEN).This is the same as Jmeter option "all active threads".
-
THREAD_GROUP_EVEN
public static final DslThroughputTimer.ThroughputMode THREAD_GROUP_EVEN
The configured throughput will be divided among active threads of the current thread group (ignoring other thread groups) and each thread will control that part of the throughput regardless if other threads in the same thread group were far from expected throughput. E.g.: if you place the timer inside a thread group, configure 10 tpm, and 10 active threads in the thread group, each thread in the thread group will try to achieve 1tpm. If one thread in the thread group is slower than the rest, the other threads in the thread group will not take that into account to adjust their throughput to try to achieve the expected total throughput.If you place the timer at test plan level, then each thread group in the test plan will try to achieve configured throughput.
Check
THREAD_GROUP_ACCURATEas an alternative.This is the same as Jmeter option "all active threads in current thread group".
-
ALL_THREADS_ACCURATE
public static final DslThroughputTimer.ThroughputMode ALL_THREADS_ACCURATE
The configured throughput is controlled checking the last time each active thread executed.This avoids not achieving the configured throughput when one thread is particularly slow, making the timer behavior more accurate with expected behavior (than
ALL_THREADS_EVEN). BUT, this timer uses only one mark for last thread execution, shared across all timers using same calculation mode, which means that one timer calculation might/will affect other timers calculations. So, if you use this method, make sure you only use one timer with such method.To avoid this issue you might use
ALL_THREADS_EVEN, but total throughput would not adjust when some threads are slower than others.In general use this mode only on test plan level timers, otherwise it might lead to confusion or unexpected behavior. E.g.: avoid having timers inside thread groups with ALL_THREADS_ACCURATE. Prefer in such scenarios
THREAD_GROUP_ACCURATE).This is the same as Jmeter option "all active threads (shared)".
-
THREAD_GROUP_ACCURATE
public static final DslThroughputTimer.ThroughputMode THREAD_GROUP_ACCURATE
The configured throughput is controlled checking the last time each active thread, in the thread group, executed.This avoids not achieving the configured throughput when one thread is particularly slow, making the timer behavior more accurate with expected behavior (than
THREAD_GROUP_EVEN). BUT, this timer uses only one mark per thread group for last thread execution, shared across all timers in same thread group using same calculation mode, which means that one timer calculation might/will affect other timers calculations in same thread group. So, if you use this method, make sure you only use one timer per thread group with such method.To avoid this issue you might use
THREAD_GROUP_EVEN, but total throughput would not adjust when some threads are slower than others.If you place the timer at test plan level, then each thread group in the test plan will try to achieve configured throughput.
This is the same as Jmeter option "all active threads in current thread group (shared)".
-
-
Method Detail
-
values
public static DslThroughputTimer.ThroughputMode[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (DslThroughputTimer.ThroughputMode c : DslThroughputTimer.ThroughputMode.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static DslThroughputTimer.ThroughputMode valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
propertyValue
public String propertyValue()
- Specified by:
propertyValuein interfaceEnumParam.EnumPropertyValue
-
-