blob: 7cb30372975b3127a3e7919d770aa60bb4f6dd6d [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ConstantThroughputTimer (Apache JMeter dist API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.jmeter.timers, class: ConstantThroughputTimer">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><b>Apache JMeter</b></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.jmeter.timers</a></div>
<h1 title="Class ConstantThroughputTimer" class="title">Class ConstantThroughputTimer</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="../testelement/AbstractTestElement.html" title="class in org.apache.jmeter.testelement">org.apache.jmeter.testelement.AbstractTestElement</a>
<div class="inheritance">org.apache.jmeter.timers.ConstantThroughputTimer</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a></code>, <code><a href="../gui/Searchable.html" title="interface in org.apache.jmeter.gui">Searchable</a></code>, <code><a href="../testbeans/TestBean.html" title="interface in org.apache.jmeter.testbeans">TestBean</a></code>, <code><a href="../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a></code>, <code><a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a></code>, <code><a href="Timer.html" title="interface in org.apache.jmeter.timers">Timer</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ConstantThroughputTimer</span>
<span class="extends-implements">extends <a href="../testelement/AbstractTestElement.html" title="class in org.apache.jmeter.testelement">AbstractTestElement</a>
implements <a href="Timer.html" title="interface in org.apache.jmeter.timers">Timer</a>, <a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a>, <a href="../testbeans/TestBean.html" title="interface in org.apache.jmeter.testbeans">TestBean</a></span></div>
<div class="block">This class implements a constant throughput timer. A Constant Throughput
Timer paces the samplers under its influence so that the total number of
samples per unit of time approaches a given constant as much as possible.
There are two different ways of pacing the requests:
- delay each thread according to when it last ran
- delay each thread according to when any thread last ran</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../serialized-form.html#org.apache.jmeter.timers.ConstantThroughputTimer">Serialized Form</a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ConstantThroughputTimer.Mode.html" class="type-name-link" title="enum in org.apache.jmeter.timers">ConstantThroughputTimer.Mode</a></code></div>
<div class="col-last even-row-color">
<div class="block">This enum defines the calculation modes used by the ConstantThroughputTimer.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#CALC_MODE" class="member-name-link">CALC_MODE</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#THROUGHPUT" class="member-name-link">THROUGHPUT</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.jmeter.testelement.TestElement">Fields inherited from interface&nbsp;org.apache.jmeter.testelement.<a href="../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a></h3>
<code><a href="../testelement/TestElement.html#COMMENTS">COMMENTS</a>, <a href="../testelement/TestElement.html#ENABLED">ENABLED</a>, <a href="../testelement/TestElement.html#GUI_CLASS">GUI_CLASS</a>, <a href="../testelement/TestElement.html#NAME">NAME</a>, <a href="../testelement/TestElement.html#TEST_CLASS">TEST_CLASS</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ConstantThroughputTimer</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">Constructor for a non-configured ConstantThroughputTimer.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#calculateCurrentTarget(long)" class="member-name-link">calculateCurrentTarget</a><wbr>(long&nbsp;currentTime)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Calculate the target time by adding the result of private method
<code>calculateDelay()</code> to the given <code>currentTime</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#delay()" class="member-name-link">delay</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Retrieve the delay to use during test execution.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCalcMode()" class="member-name-link">getCalcMode</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getThroughput()" class="member-name-link">getThroughput</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Gets the configured desired throughput.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setCalcMode(int)" class="member-name-link">setCalcMode</a><wbr>(int&nbsp;mode)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setProperty(org.apache.jmeter.testelement.property.JMeterProperty)" class="member-name-link">setProperty</a><wbr>(<a href="../testelement/property/JMeterProperty.html" title="interface in org.apache.jmeter.testelement.property">JMeterProperty</a>&nbsp;property)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Override the setProperty method in order to convert
the original String calcMode property.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setThroughput(double)" class="member-name-link">setThroughput</a><wbr>(double&nbsp;throughput)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the desired throughput.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testEnded()" class="member-name-link">testEnded</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">
Called once for all threads after the end of a test.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testEnded(java.lang.String)" class="member-name-link">testEnded</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;host)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">
Called once for all threads after the end of a test.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testStarted()" class="member-name-link">testStarted</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get the timer ready to compute delays for a new test.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#testStarted(java.lang.String)" class="member-name-link">testStarted</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;host)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">
Called just before the start of the test from the main engine thread.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Provide a description of this timer class.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jmeter.testelement.AbstractTestElement">Methods inherited from class&nbsp;org.apache.jmeter.testelement.<a href="../testelement/AbstractTestElement.html" title="class in org.apache.jmeter.testelement">AbstractTestElement</a></h3>
<code><a href="../testelement/AbstractTestElement.html#addPropertiesValues(java.util.List,java.util.Set)">addPropertiesValues</a>, <a href="../testelement/AbstractTestElement.html#addProperty(org.apache.jmeter.testelement.property.JMeterProperty)">addProperty</a>, <a href="../testelement/AbstractTestElement.html#addProperty(org.apache.jmeter.testelement.property.JMeterProperty,boolean)">addProperty</a>, <a href="../testelement/AbstractTestElement.html#addTestElement(org.apache.jmeter.testelement.TestElement)">addTestElement</a>, <a href="../testelement/AbstractTestElement.html#canRemove()">canRemove</a>, <a href="../testelement/AbstractTestElement.html#clear()">clear</a>, <a href="../testelement/AbstractTestElement.html#clearTemporary(org.apache.jmeter.testelement.property.JMeterProperty)">clearTemporary</a>, <a href="../testelement/AbstractTestElement.html#clearTestElementChildren()">clearTestElementChildren</a>, <a href="../testelement/AbstractTestElement.html#clone()">clone</a>, <a href="../testelement/AbstractTestElement.html#emptyTemporary()">emptyTemporary</a>, <a href="../testelement/AbstractTestElement.html#equals(java.lang.Object)">equals</a>, <a href="../testelement/AbstractTestElement.html#getComment()">getComment</a>, <a href="../testelement/AbstractTestElement.html#getName()">getName</a>, <a href="../testelement/AbstractTestElement.html#getProperty(java.lang.String)">getProperty</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsBoolean(java.lang.String)">getPropertyAsBoolean</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsBoolean(java.lang.String,boolean)">getPropertyAsBoolean</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsDouble(java.lang.String)">getPropertyAsDouble</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsFloat(java.lang.String)">getPropertyAsFloat</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsInt(java.lang.String)">getPropertyAsInt</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsInt(java.lang.String,int)">getPropertyAsInt</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsLong(java.lang.String)">getPropertyAsLong</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsLong(java.lang.String,long)">getPropertyAsLong</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsString(java.lang.String)">getPropertyAsString</a>, <a href="../testelement/AbstractTestElement.html#getPropertyAsString(java.lang.String,java.lang.String)">getPropertyAsString</a>, <a href="../testelement/AbstractTestElement.html#getSearchableTokens()">getSearchableTokens</a>, <a href="../testelement/AbstractTestElement.html#getThreadContext()">getThreadContext</a>, <a href="../testelement/AbstractTestElement.html#getThreadName()">getThreadName</a>, <a href="../testelement/AbstractTestElement.html#hashCode()">hashCode</a>, <a href="../testelement/AbstractTestElement.html#isEnabled()">isEnabled</a>, <a href="../testelement/AbstractTestElement.html#isRunningVersion()">isRunningVersion</a>, <a href="../testelement/AbstractTestElement.html#isTemporary(org.apache.jmeter.testelement.property.JMeterProperty)">isTemporary</a>, <a href="../testelement/AbstractTestElement.html#logProperties()">logProperties</a>, <a href="../testelement/AbstractTestElement.html#mergeIn(org.apache.jmeter.testelement.TestElement)">mergeIn</a>, <a href="../testelement/AbstractTestElement.html#propertyIterator()">propertyIterator</a>, <a href="../testelement/AbstractTestElement.html#recoverRunningVersion()">recoverRunningVersion</a>, <a href="../testelement/AbstractTestElement.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="../testelement/AbstractTestElement.html#setComment(java.lang.String)">setComment</a>, <a href="../testelement/AbstractTestElement.html#setEnabled(boolean)">setEnabled</a>, <a href="../testelement/AbstractTestElement.html#setName(java.lang.String)">setName</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,boolean)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,boolean,boolean)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,int)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,int,int)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,long)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,long,long)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,java.lang.String)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setProperty(java.lang.String,java.lang.String,java.lang.String)">setProperty</a>, <a href="../testelement/AbstractTestElement.html#setRunningVersion(boolean)">setRunningVersion</a>, <a href="../testelement/AbstractTestElement.html#setTemporary(org.apache.jmeter.testelement.property.JMeterProperty)">setTemporary</a>, <a href="../testelement/AbstractTestElement.html#setThreadContext(org.apache.jmeter.threads.JMeterContext)">setThreadContext</a>, <a href="../testelement/AbstractTestElement.html#setThreadName(java.lang.String)">setThreadName</a>, <a href="../testelement/AbstractTestElement.html#traverse(org.apache.jmeter.testelement.TestElementTraverser)">traverse</a>, <a href="../testelement/AbstractTestElement.html#traverseCollection(org.apache.jmeter.testelement.property.CollectionProperty,org.apache.jmeter.testelement.TestElementTraverser)">traverseCollection</a>, <a href="../testelement/AbstractTestElement.html#traverseMap(org.apache.jmeter.testelement.property.MapProperty,org.apache.jmeter.testelement.TestElementTraverser)">traverseMap</a>, <a href="../testelement/AbstractTestElement.html#traverseProperty(org.apache.jmeter.testelement.TestElementTraverser,org.apache.jmeter.testelement.property.JMeterProperty)">traverseProperty</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jmeter.testelement.TestElement">Methods inherited from interface&nbsp;org.apache.jmeter.testelement.<a href="../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a></h3>
<code><a href="../testelement/TestElement.html#removed()">removed</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jmeter.timers.Timer">Methods inherited from interface&nbsp;org.apache.jmeter.timers.<a href="Timer.html" title="interface in org.apache.jmeter.timers">Timer</a></h3>
<code><a href="Timer.html#isModifiable()">isModifiable</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="THROUGHPUT">
<h3>THROUGHPUT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">THROUGHPUT</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.jmeter.timers.ConstantThroughputTimer.THROUGHPUT">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="CALC_MODE">
<h3>CALC_MODE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">CALC_MODE</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.jmeter.timers.ConstantThroughputTimer.CALC_MODE">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>ConstantThroughputTimer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ConstantThroughputTimer</span>()</div>
<div class="block">Constructor for a non-configured ConstantThroughputTimer.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="setThroughput(double)">
<h3>setThroughput</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setThroughput</span><wbr><span class="parameters">(double&nbsp;throughput)</span></div>
<div class="block">Sets the desired throughput.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>throughput</code> - Desired sampling rate, in samples per minute.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getThroughput()">
<h3>getThroughput</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">getThroughput</span>()</div>
<div class="block">Gets the configured desired throughput.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the rate at which samples should occur, in samples per minute.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCalcMode()">
<h3>getCalcMode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getCalcMode</span>()</div>
</section>
</li>
<li>
<section class="detail" id="setCalcMode(int)">
<h3>setCalcMode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setCalcMode</span><wbr><span class="parameters">(int&nbsp;mode)</span></div>
</section>
</li>
<li>
<section class="detail" id="delay()">
<h3>delay</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">delay</span>()</div>
<div class="block">Retrieve the delay to use during test execution.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Timer.html#delay()">delay</a></code>&nbsp;in interface&nbsp;<code><a href="Timer.html" title="interface in org.apache.jmeter.timers">Timer</a></code></dd>
<dt>Returns:</dt>
<dd>the computed delay value.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Timer.html#delay()"><code>Timer.delay()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="calculateCurrentTarget(long)">
<h3>calculateCurrentTarget</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">calculateCurrentTarget</span><wbr><span class="parameters">(long&nbsp;currentTime)</span></div>
<div class="block">Calculate the target time by adding the result of private method
<code>calculateDelay()</code> to the given <code>currentTime</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>currentTime</code> - time in ms</dd>
<dt>Returns:</dt>
<dd>new Target time</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Provide a description of this timer class.
TODO: Is this ever used? I can't remember where. Remove if it isn't --
TODO: or obtain text from bean's displayName or shortDescription.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Returns:</dt>
<dd>the description of this timer class.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="testStarted()">
<h3>testStarted</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">testStarted</span>()</div>
<div class="block">Get the timer ready to compute delays for a new test.
<p>
<p>
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.
</p>
<p>
<b>
N.B. testStarted() and testEnded() are called from different threads.
</b>
</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../testelement/TestStateListener.html#testStarted()">testStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a></code></dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../engine/StandardJMeterEngine.html#run()"><code>StandardJMeterEngine.run()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setProperty(org.apache.jmeter.testelement.property.JMeterProperty)">
<h3>setProperty</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setProperty</span><wbr><span class="parameters">(<a href="../testelement/property/JMeterProperty.html" title="interface in org.apache.jmeter.testelement.property">JMeterProperty</a>&nbsp;property)</span></div>
<div class="block">Override the setProperty method in order to convert
the original String calcMode property.
This used the locale-dependent display value, so caused
problems when the language was changed.
Note that the calcMode StringProperty is replaced with an IntegerProperty
so the conversion only needs to happen once.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../testelement/TestElement.html#setProperty(org.apache.jmeter.testelement.property.JMeterProperty)">setProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="../testelement/AbstractTestElement.html#setProperty(org.apache.jmeter.testelement.property.JMeterProperty)">setProperty</a></code>&nbsp;in class&nbsp;<code><a href="../testelement/AbstractTestElement.html" title="class in org.apache.jmeter.testelement">AbstractTestElement</a></code></dd>
<dt>Parameters:</dt>
<dd><code>property</code> - the property to be set</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="testEnded()">
<h3>testEnded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">testEnded</span>()</div>
<div class="block"><p>
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.
</p>
<p>
<b>
N.B. testStarted() and testEnded() are called from different threads.
</b>
</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../testelement/TestStateListener.html#testEnded()">testEnded</a></code>&nbsp;in interface&nbsp;<code><a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a></code></dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../engine/StandardJMeterEngine.html#stopTest()"><code>StandardJMeterEngine.stopTest()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="testStarted(java.lang.String)">
<h3>testStarted</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">testStarted</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;host)</span></div>
<div class="block"><p>
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.
</p>
<p>
<b>
N.B. testStarted() and testEnded() are called from different threads.
</b>
</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../testelement/TestStateListener.html#testStarted(java.lang.String)">testStarted</a></code>&nbsp;in interface&nbsp;<code><a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a></code></dd>
<dt>Parameters:</dt>
<dd><code>host</code> - name of host</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../engine/StandardJMeterEngine.html#run()"><code>StandardJMeterEngine.run()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="testEnded(java.lang.String)">
<h3>testEnded</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">testEnded</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;host)</span></div>
<div class="block"><p>
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.
</p>
<p>
<b>
N.B. testStarted() and testEnded() are called from different threads.
</b>
</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../testelement/TestStateListener.html#testEnded(java.lang.String)">testEnded</a></code>&nbsp;in interface&nbsp;<code><a href="../testelement/TestStateListener.html" title="interface in org.apache.jmeter.testelement">TestStateListener</a></code></dd>
<dt>Parameters:</dt>
<dd><code>host</code> - name of host</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="../engine/StandardJMeterEngine.html#stopTest()"><code>StandardJMeterEngine.stopTest()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>