blob: dd801102a667c642617d93cf152fd3828f49b186 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BackendListenerClient (Apache JMeter dist API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BackendListenerClient (Apache JMeter dist API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache JMeter</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListener.html" title="class in org.apache.jmeter.visualizers.backend"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/jmeter/visualizers/backend/BackendListenerClient.html" target="_top">Frames</a></li>
<li><a href="BackendListenerClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.jmeter.visualizers.backend</div>
<h2 title="Interface BackendListenerClient" class="title">Interface BackendListenerClient</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend">AbstractBackendListenerClient</a>, <a href="../../../../../org/apache/jmeter/visualizers/backend/graphite/GraphiteBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend.graphite">GraphiteBackendListenerClient</a>, <a href="../../../../../org/apache/jmeter/visualizers/backend/influxdb/InfluxdbBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend.influxdb">InfluxdbBackendListenerClient</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">BackendListenerClient</span></pre>
<div class="block">This interface defines the interactions between the BackendListener and external
Java programs which can be executed by JMeter. Any Java class which wants to
be executed using the BackendListener test element must implement this interface (either directly
or preferably indirectly through AbstractBackendListenerClient).
<p>
JMeter will create one instance of a BackendListenerClient implementation for
each user/thread in the test. Additional instances may be created for
internal use by JMeter (for example, to find out what parameters are
supported by the client).
<p>
When the test is started, setupTest() will be called on each thread's
BackendListenerClient instance to initialize the client. Then handleSampleResult() will be
called for each SampleResult notification. Finally, teardownTest() will be called
to allow the client to do any necessary clean-up.
<p>
The JMeter BackendListener GUI allows a list of parameters to be defined for the
test. These are passed to the various test methods through the
<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListenerContext</code></a>. A list of default parameters can be defined
through the getDefaultParameters() method. These parameters and any default
values associated with them will be shown in the GUI. Users can add other
parameters as well.
<p>
When possible, Listeners should extend <a href="../../../../../org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend"><code>AbstractBackendListenerClient</code></a> rather than implementing BackendListenerClient
directly. This should protect your tests from future changes to the
interface. While it may be necessary to make changes to the BackendListenerClient
interface from time to time (therefore requiring changes to any
implementations of this interface), we intend to make this abstract class
provide reasonable default implementations of any new methods so that
subclasses do not necessarily need to be updated for new versions.
Implementing BackendListenerClient directly will continue to be supported for
cases where extending this class is not possible (for example, when the
client class is already a subclass of some other class).</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.13</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerClient.html#createSampleResult-org.apache.jmeter.visualizers.backend.BackendListenerContext-org.apache.jmeter.samplers.SampleResult-">createSampleResult</a></span>(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context,
<a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&nbsp;result)</code>
<div class="block">Create a copy of SampleResult, this method is here to allow customizing
what is kept in the copy, for example copy could remove some useless fields.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/jmeter/config/Arguments.html" title="class in org.apache.jmeter.config">Arguments</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerClient.html#getDefaultParameters--">getDefaultParameters</a></span>()</code>
<div class="block">Provide a list of parameters which this test supports.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerClient.html#handleSampleResults-java.util.List-org.apache.jmeter.visualizers.backend.BackendListenerContext-">handleSampleResults</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&gt;&nbsp;sampleResults,
<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code>
<div class="block">Handle sampleResults, this can be done in many ways:
Write to a file
Write to a distant server
...
</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerClient.html#setupTest-org.apache.jmeter.visualizers.backend.BackendListenerContext-">setupTest</a></span>(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code>
<div class="block">Do any initialization required by this client.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerClient.html#teardownTest-org.apache.jmeter.visualizers.backend.BackendListenerContext-">teardownTest</a></span>(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code>
<div class="block">Do any clean-up required at the end of a test run.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setupTest-org.apache.jmeter.visualizers.backend.BackendListenerContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setupTest</h4>
<pre>void&nbsp;setupTest(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Do any initialization required by this client. It is generally
recommended to do any initialization such as getting parameter values in
the setupTest method rather than the runTest method in order to add as
little overhead as possible to the test.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the context to run with. This provides access to
initialization parameters.
Context is readonly</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when setup fails</dd>
</dl>
</li>
</ul>
<a name="handleSampleResults-java.util.List-org.apache.jmeter.visualizers.backend.BackendListenerContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleSampleResults</h4>
<pre>void&nbsp;handleSampleResults(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&gt;&nbsp;sampleResults,
<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</pre>
<div class="block">Handle sampleResults, this can be done in many ways:
<ul>
<li>Write to a file</li>
<li>Write to a distant server</li>
<li>...</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sampleResults</code> - List of <a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
<dd><code>context</code> - the context to run with. This provides access to
initialization parameters.</dd>
</dl>
</li>
</ul>
<a name="teardownTest-org.apache.jmeter.visualizers.backend.BackendListenerContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>teardownTest</h4>
<pre>void&nbsp;teardownTest(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Do any clean-up required at the end of a test run.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the context to run with. This provides access to
initialization parameters.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - when tear down fails</dd>
</dl>
</li>
</ul>
<a name="getDefaultParameters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultParameters</h4>
<pre><a href="../../../../../org/apache/jmeter/config/Arguments.html" title="class in org.apache.jmeter.config">Arguments</a>&nbsp;getDefaultParameters()</pre>
<div class="block">Provide a list of parameters which this test supports. Any parameter
names and associated values returned by this method will appear in the
GUI by default so the user doesn't have to remember the exact names. The
user can add other parameters which are not listed here. If this method
returns null then no parameters will be listed. If the value for some
parameter is null then that parameter will be listed in the GUI with an
empty value.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a specification of the parameters used by this test which should
be listed in the GUI, or null if no parameters should be listed.</dd>
</dl>
</li>
</ul>
<a name="createSampleResult-org.apache.jmeter.visualizers.backend.BackendListenerContext-org.apache.jmeter.samplers.SampleResult-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createSampleResult</h4>
<pre><a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&nbsp;createSampleResult(<a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context,
<a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&nbsp;result)</pre>
<div class="block">Create a copy of SampleResult, this method is here to allow customizing
what is kept in the copy, for example copy could remove some useless fields.
Note that if it returns null, the sample result is not put in the queue.
Defaults to returning result.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - <a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListenerContext</code></a></dd>
<dd><code>result</code> - <a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/apache/jmeter/samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache JMeter</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListener.html" title="class in org.apache.jmeter.visualizers.backend"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/jmeter/visualizers/backend/BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/jmeter/visualizers/backend/BackendListenerClient.html" target="_top">Frames</a></li>
<li><a href="BackendListenerClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright © 1998-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>