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)