Enum DslThroughputTimer.ThroughputMode

    • 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_ACCURATE as 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_ACCURATE as 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 name
        NullPointerException - if the argument is null