blob: 1db83c3113afda58739661d3aa5e10aacd80e2ac [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>BackendListenerClient (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.visualizers.backend, interface: BackendListenerClient">
<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>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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.visualizers.backend</a></div>
<h1 title="Interface BackendListenerClient" class="title">Interface BackendListenerClient</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend">AbstractBackendListenerClient</a></code>, <code><a href="graphite/GraphiteBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend.graphite">GraphiteBackendListenerClient</a></code>, <code><a href="influxdb/InfluxdbBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend.influxdb">InfluxdbBackendListenerClient</a></code>, <code><a href="influxdb/InfluxDBRawBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend.influxdb">InfluxDBRawBackendListenerClient</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">BackendListenerClient</span></div>
<div class="block">This interface defines the interactions between the <a href="BackendListener.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListener</code></a>
and external Java programs which can be executed by JMeter. Any Java class
which wants to be executed using the <a href="BackendListener.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListener</code></a> test element
must implement this interface (either directly or through
<a href="AbstractBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend"><code>AbstractBackendListenerClient</code></a>).
<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 <a href="#handleSampleResults(java.util.List,org.apache.jmeter.visualizers.backend.BackendListenerContext)"><code>handleSampleResults(List, BackendListenerContext)</code></a> will be
called for each <a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a> notification. Finally,
<a href="#teardownTest(org.apache.jmeter.visualizers.backend.BackendListenerContext)"><code>teardownTest(BackendListenerContext)</code></a>
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="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListenerContext</code></a>. A list of default parameters can be defined
through the <a href="#getDefaultParameters()"><code>getDefaultParameters()</code></a> method. These parameters and any
default values associated with them will be shown in the GUI. Users can add
other parameters as well.
<p>
Listeners should extend <a href="AbstractBackendListenerClient.html" title="class in org.apache.jmeter.visualizers.backend"><code>AbstractBackendListenerClient</code></a>
rather than implementing <a href="BackendListenerClient.html" title="interface in org.apache.jmeter.visualizers.backend"><code>BackendListenerClient</code></a> directly to protect
your code from future changes to the interface.
<p>
While it may be necessary to make changes to the <a href="BackendListenerClient.html" title="interface in org.apache.jmeter.visualizers.backend"><code>BackendListenerClient</code></a>
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 class="notes">
<dt>Since:</dt>
<dd>2.13</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== 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-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default 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-tab5"><code>default <a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#createSampleResult(org.apache.jmeter.visualizers.backend.BackendListenerContext,org.apache.jmeter.samplers.SampleResult)" class="member-name-link">createSampleResult</a><wbr>(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context,
<a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&nbsp;result)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="../../config/Arguments.html" title="class in org.apache.jmeter.config">Arguments</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#getDefaultParameters()" class="member-name-link">getDefaultParameters</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Provide a list of parameters which this test supports.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#handleSampleResults(java.util.List,org.apache.jmeter.visualizers.backend.BackendListenerContext)" class="member-name-link">handleSampleResults</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&gt;&nbsp;sampleResults,
<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Handle sampleResults, this can be done in many ways:
Write to a file
Write to a remote server
...
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setupTest(org.apache.jmeter.visualizers.backend.BackendListenerContext)" class="member-name-link">setupTest</a><wbr>(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Do any initialization required by this client.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#teardownTest(org.apache.jmeter.visualizers.backend.BackendListenerContext)" class="member-name-link">teardownTest</a><wbr>(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Do any clean-up required at the end of a test run.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="setupTest(org.apache.jmeter.visualizers.backend.BackendListenerContext)">
<h3>setupTest</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setupTest</span><wbr><span class="parameters">(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Do any initialization required by this client. It is generally
recommended to do any initialization such as getting parameter values
here rather than <a href="#handleSampleResults(java.util.List,org.apache.jmeter.visualizers.backend.BackendListenerContext)"><code>handleSampleResults(List, BackendListenerContext)</code></a>
in order to add as little overhead as possible to the test.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - provides access to initialization parameters.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - when setup fails</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handleSampleResults(java.util.List,org.apache.jmeter.visualizers.backend.BackendListenerContext)">
<h3>handleSampleResults</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">handleSampleResults</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&gt;&nbsp;sampleResults,
<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</span></div>
<div class="block">Handle sampleResults, this can be done in many ways:
<ul>
<li>Write to a file</li>
<li>Write to a remote server</li>
<li>...</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>sampleResults</code> - List of <a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
<dd><code>context</code> - provides access to initialization parameters.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="teardownTest(org.apache.jmeter.visualizers.backend.BackendListenerContext)">
<h3>teardownTest</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">teardownTest</span><wbr><span class="parameters">(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Do any clean-up required at the end of a test run.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - provides access to initialization parameters.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - when tear down fails</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getDefaultParameters()">
<h3>getDefaultParameters</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="../../config/Arguments.html" title="class in org.apache.jmeter.config">Arguments</a></span>&nbsp;<span class="element-name">getDefaultParameters</span>()</div>
<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 class="notes">
<dt>Returns:</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>
</section>
</li>
<li>
<section class="detail" id="createSampleResult(org.apache.jmeter.visualizers.backend.BackendListenerContext,org.apache.jmeter.samplers.SampleResult)">
<h3>createSampleResult</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a></span>&nbsp;<span class="element-name">createSampleResult</span><wbr><span class="parameters">(<a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend">BackendListenerContext</a>&nbsp;context,
<a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers">SampleResult</a>&nbsp;result)</span></div>
<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 class="notes">
<dt>Parameters:</dt>
<dd><code>context</code> - <a href="BackendListenerContext.html" title="class in org.apache.jmeter.visualizers.backend"><code>BackendListenerContext</code></a></dd>
<dd><code>result</code> - <a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
<dt>Returns:</dt>
<dd><a href="../../samplers/SampleResult.html" title="class in org.apache.jmeter.samplers"><code>SampleResult</code></a></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &copy; 1998-2024 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>