org.apache.jmeter.timers.poissonarrivals

## Class PreciseThroughputTimer

- java.lang.Object
- - org.apache.jmeter.testelement.AbstractTestElement
  - - org.apache.jmeter.timers.poissonarrivals.PreciseThroughputTimer

- All Implemented Interfaces:
    Serializable, Cloneable, Searchable, TestBean, TestElement, TestStateListener, Timer

      public class PreciseThroughputTimer
      extends AbstractTestElement
      implements Cloneable, Timer, TestStateListener, TestBean

  This timer generates Poisson arrivals with constant throughput. On top of that, it tries to maintain the exact amount of arrivals for a given timeframe (`throughputPeriod`).
  Since:
    4.0
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

      `COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PreciseThroughputTimer()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `clone()`
    `long` | `delay()` This method is called after a sampling process is done to know how much time the sampling thread has to wait until sampling again.
    `double` | `getAllowedThroughputSurplus()`
    `int` | `getBatchSize()`
    `int` | `getBatchThreadDelay()`
    `long` | `getDuration()`
    `int` | `getExactLimit()`
    `Long` | `getRandomSeed()`
    `double` | `getThroughput()` Returns number of generated samples per `getThroughputPeriod()`
    `int` | `getThroughputPeriod()` Allows to use business values for throughput configuration.
    `void` | `setAllowedThroughputSurplus(double allowedThroughputSurplus)`
    `void` | `setBatchSize(int batchSize)`
    `void` | `setBatchThreadDelay(int batchThreadDelay)`
    `void` | `setDuration(long duration)`
    `void` | `setExactLimit(int exactLimit)`
    `void` | `setRandomSeed(Long randomSeed)`
    `void` | `setThroughput(double throughput)` Sets number of generated samples per `getThroughputPeriod()`
    `void` | `setThroughputPeriod(int throughputPeriod)`
    `void` | `testEnded()` Called once for all threads after the end of a test.
    `void` | `testEnded(String s)` Called once for all threads after the end of a test.
    `void` | `testStarted()` Called just before the start of the test from the main engine thread.
    `void` | `testStarted(String host)` Called just before the start of the test from the main engine thread.

    - ### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

      `addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.jmeter.timers.Timer

      `isModifiable`

    - ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

      `removed`

- - ### Constructor Detail

    - #### PreciseThroughputTimer

          public PreciseThroughputTimer()

  - ### Method Detail

    - #### clone

          public Object clone()

      Specified by:
        `clone` in interface `TestElement`
      Overrides:
        `clone` in class `AbstractTestElement`

    - #### testStarted

          public void testStarted()

      Description copied from interface: `TestStateListener`

      Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testStarted` in interface `TestStateListener`
      See Also:
        `StandardJMeterEngine.run()`

    - #### testStarted

          public void testStarted(String host)

      Description copied from interface: `TestStateListener`

      Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testStarted` in interface `TestStateListener`
      Parameters:
        `host` - name of host
      See Also:
        `StandardJMeterEngine.run()`

    - #### testEnded

          public void testEnded()

      Description copied from interface: `TestStateListener`

      Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testEnded` in interface `TestStateListener`
      See Also:
        `StandardJMeterEngine.stopTest()`

    - #### testEnded

          public void testEnded(String s)

      Description copied from interface: `TestStateListener`

      Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

      N.B. testStarted() and testEnded() are called from different threads.

      Specified by:
        `testEnded` in interface `TestStateListener`
      Parameters:
        `s` - name of host
      See Also:
        `StandardJMeterEngine.stopTest()`

    - #### delay

          public long delay()

      Description copied from interface: `Timer`
      This method is called after a sampling process is done to know how much time the sampling thread has to wait until sampling again.
      Specified by:
        `delay` in interface `Timer`
      Returns:
        the computed delay value.

    - #### getThroughput

          public double getThroughput()

      Returns number of generated samples per `getThroughputPeriod()`
      Returns:
        number of samples per `getThroughputPeriod()`

    - #### setThroughput

          public void setThroughput(double throughput)

      Sets number of generated samples per `getThroughputPeriod()`
      Parameters:
        `throughput` - number of samples per `getThroughputPeriod()`

    - #### getThroughputPeriod

          public int getThroughputPeriod()

      Allows to use business values for throughput configuration. For instance, 100 samples per hour vs 100 samples per minute.
      Returns:
        the length of the throughput period in seconds

    - #### setThroughputPeriod

          public void setThroughputPeriod(int throughputPeriod)

    - #### getDuration

          public long getDuration()

    - #### setDuration

          public void setDuration(long duration)

    - #### getExactLimit

          public int getExactLimit()

    - #### setExactLimit

          public void setExactLimit(int exactLimit)

    - #### getAllowedThroughputSurplus

          public double getAllowedThroughputSurplus()

    - #### setAllowedThroughputSurplus

          public void setAllowedThroughputSurplus(double allowedThroughputSurplus)

    - #### getRandomSeed

          public Long getRandomSeed()

    - #### setRandomSeed

          public void setRandomSeed(Long randomSeed)

    - #### getBatchSize

          public int getBatchSize()

    - #### setBatchSize

          public void setBatchSize(int batchSize)

    - #### getBatchThreadDelay

          public int getBatchThreadDelay()

    - #### setBatchThreadDelay

          public void setBatchThreadDelay(int batchThreadDelay)

Copyright © 1998-2019 Apache Software Foundation. All Rights Reserved.