PreciseThroughputTimer (Apache JMeter dist API)
Description: declaration: package: org.apache.jmeter.timers.poissonarrivals, class: PreciseThroughputTimer

Package 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`, `org.apache.jmeter.testelement.TestElement`, `Timer`

public class PreciseThroughputTimer extends AbstractTestElement implements Cloneable, Timer, 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

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

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

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PreciseThroughputTimer()`

- ## Method Summary

  Modifier and Type
  Method
  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()`
  Deprecated.
  `int`
  `getBatchSize()`
  `int`
  `getBatchThreadDelay()`
  `long`
  `getDuration()`
  `int`
  `getExactLimit()`
  Deprecated.
  `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)`
  Deprecated.
  `void`
  `setBatchSize(int batchSize)`
  `void`
  `setBatchThreadDelay(int batchThreadDelay)`
  `void`
  `setDuration(long duration)`
  `void`
  `setExactLimit(int exactLimit)`
  Deprecated.
  `void`
  `setRandomSeed(Long randomSeed)`
  `void`
  `setThroughput(double throughput)`
  Sets number of generated samples per `getThroughputPeriod()`
  `void`
  `setThroughputPeriod(int throughputPeriod)`

  ### 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, getPropertyOrNull, 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.testelement.TestElement

  `get, get, get, get, get, get, get, get, get, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getPropertyOrNull, getProps, getSchema, getString, removed, removeProperty, set, set, set, set, set, set, set, set, set`

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

  `isModifiable`

- ## Constructor Details

  - ### PreciseThroughputTimer

    public PreciseThroughputTimer()

- ## Method Details

  - ### clone

    public Object clone()
    Specified by:
      `clone` in interface `org.apache.jmeter.testelement.TestElement`
    Overrides:
      `clone` in class `AbstractTestElement`

  - ### 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

    @Deprecated @API(status=DEPRECATED, since="5.3.0") public int getExactLimit()
    Deprecated.

  - ### setExactLimit

    @Deprecated @API(status=DEPRECATED, since="5.3.0") public void setExactLimit(int exactLimit)
    Deprecated.

  - ### getAllowedThroughputSurplus

    @Deprecated @API(status=DEPRECATED, since="5.3.0") public double getAllowedThroughputSurplus()
    Deprecated.

  - ### setAllowedThroughputSurplus

    @Deprecated @API(status=DEPRECATED, since="5.3.0") public void setAllowedThroughputSurplus(double allowedThroughputSurplus)
    Deprecated.

  - ### 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)