<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en">
<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title>Apache JMeter
          -
          User's Manual: Properties Reference</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../css/new-style.css">
<link rel="apple-touch-icon-precomposed" href="../images/apple-touch-icon.png">
<link rel="icon" href="../images/favicon.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="../images/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body role="document">
<a href="#content" class="hidden">Main content</a>
<div class="header">
<!--
            APACHE LOGO
          -->
<div>
<a href="https://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="../images/asf-logo.svg" alt="Logo ASF"></a>
</div>
<!--
              PROJECT LOGO
            -->
<div>
<a href="https://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a>
</div>
<div class="banner">
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Current Apache event teaser"></a>
<div class="clear"></div>
</div>
</div>
<div class="nav">
<ul class="menu">
<li onClick="return true">
<div class="menu-title">About</div>
<ul>
<li>
<a href="../index.html">Overview</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Download</div>
<ul>
<li>
<a href="../download_jmeter.cgi">Download Releases</a>
</li>
<li>
<a href="../changes.html">Release Notes</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Documentation</div>
<ul>
<li>
<a href="../usermanual/get-started.html">Get Started</a>
</li>
<li>
<a href="../usermanual/index.html">User Manual</a>
</li>
<li>
<a href="../usermanual/best-practices.html">Best Practices</a>
</li>
<li>
<a href="../usermanual/component_reference.html">Component Reference</a>
</li>
<li>
<a href="../usermanual/functions.html">Functions Reference</a>
</li>
<li>
<a href="../usermanual/properties_reference.html">Properties Reference</a>
</li>
<li>
<a href="../changes_history.html">Change History</a>
</li>
<li>
<a href="../api/index.html">Javadocs</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">FAQ (Wiki)</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Tutorials</div>
<ul>
<li>
<a href="../usermanual/jmeter_distributed_testing_step_by_step.html">Distributed Testing</a>
</li>
<li>
<a href="../usermanual/jmeter_proxy_step_by_step.html">Recording Tests</a>
</li>
<li>
<a href="../usermanual/junitsampler_tutorial.html">JUnit Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_accesslog_sampler_step_by_step.html">Access Log Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_tutorial.html">Extending JMeter</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Community</div>
<ul>
<li>
<a href="../issues.html">Issue Tracking</a>
</li>
<li>
<a href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a href="../mail.html">Mailing Lists</a>
</li>
<li>
<a href="../svnindex.html">Source Repositories</a>
</li>
<li>
<a href="../building.html">Building and Contributing</a>
</li>
<li>
<a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Foundation</div>
<ul>
<li>
<a href="https://www.apache.org/">The Apache Software Foundation (ASF)</a>
</li>
<li>
<a href="https://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="main" id="content">
<div class="social-media">
<ul class="social-media-links">
<li class="twitter">
<a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a>
</li>
<li class="github">
<a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a>
</li>
</ul>
</div>
<ul class="pagelinks">
<li>
<a href="component_reference.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="functions.html">Next &gt;</a>
</li>
</ul>
<ul class="section-index">
<li>
<a href="#introduction">19 Introduction</a>
<ul></ul>
</li>
<li>
<a href="#language">19.1 Language</a>
<ul></ul>
</li>
<li>
<a href="#xml_parser">19.2 XML Parser</a>
<ul></ul>
</li>
<li>
<a href="#ssl_config">19.3 SSL configuration</a>
<ul></ul>
</li>
<li>
<a href="#laf_config">19.4 Look and Feel configuration</a>
<ul></ul>
</li>
<li>
<a href="#darklaf_config">19.4.1 Darklaf configuration</a>
<ul></ul>
</li>
<li>
<a href="#toolbar_display">19.5 Toolbar display</a>
<ul></ul>
</li>
<li>
<a href="#backup">19.6 JMX Backup configuration</a>
<ul></ul>
</li>
<li>
<a href="#remote">19.7 Remote hosts and RMI configuration</a>
<ul></ul>
</li>
<li>
<a href="#include_controller">19.8 Include Controller</a>
<ul></ul>
</li>
<li>
<a href="#http_java_config">19.9 HTTP Java configuration</a>
<ul></ul>
</li>
<li>
<a href="#httpclient_common_properties">19.10 Apache HttpClient common properties</a>
<ul></ul>
</li>
<li>
<a href="#kerberos">19.11 Kerberos properties</a>
<ul></ul>
</li>
<li>
<a href="#httpclient_logging_examples">19.12 Apache HttpClient logging examples</a>
<ul></ul>
</li>
<li>
<a href="#httpclient4">19.13 Apache HttpComponents HTTPClient configuration (HTTPClient4)</a>
<ul></ul>
</li>
<li>
<a href="#cache_manager">19.14 HTTP Cache Manager configuration</a>
<ul></ul>
</li>
<li>
<a href="#results_file_config">19.15 Results file configuration</a>
<ul></ul>
</li>
<li>
<a href="#sample_results">19.16 Settings that affect SampleResults</a>
<ul></ul>
</li>
<li>
<a href="#upgrade">19.17 Upgrade</a>
<ul></ul>
</li>
<li>
<a href="#test_script_recorder">19.18 JMeter Test Script recorder configuration</a>
<ul></ul>
</li>
<li>
<a href="#test_script_recorder_cert">19.19 Test Script Recorder certificate configuration</a>
<ul></ul>
</li>
<li>
<a href="#proxy_config">19.20 JMeter Proxy configuration</a>
<ul></ul>
</li>
<li>
<a href="#parser_config">19.21 HTML Parser configuration</a>
<ul></ul>
</li>
<li>
<a href="#remote_batching_config">19.22 Remote batching configuration</a>
<ul></ul>
</li>
<li>
<a href="#jdbc_request">19.23 JDBC Request configuration</a>
<ul></ul>
</li>
<li>
<a href="#os_sampler">19.24 OS Process Sampler configuration</a>
<ul></ul>
</li>
<li>
<a href="#tcp_sampler">19.25 TCP Sampler configuration</a>
<ul></ul>
</li>
<li>
<a href="#summariser">19.26 Summariser - Generate Summary Results - configuration (mainly applies to CLI mode)</a>
<ul></ul>
</li>
<li>
<a href="#aggregate_report_graph">19.27 Aggregate Report and Aggregate Graph - configuration</a>
<ul></ul>
</li>
<li>
<a href="#backend">19.28 BackendListener - configuration</a>
<ul></ul>
</li>
<li>
<a href="#beanshell">19.29 BeanShell configuration</a>
<ul></ul>
</li>
<li>
<a href="#mailer">19.30 MailerModel configuration</a>
<ul></ul>
</li>
<li>
<a href="#csv">19.31 CSVRead configuration</a>
<ul></ul>
</li>
<li>
<a href="#time">19.32 __time() function configuration</a>
<ul></ul>
</li>
<li>
<a href="#csv_dataset">19.33 CSV DataSet configuration</a>
<ul></ul>
</li>
<li>
<a href="#ldap">19.34 LDAP Sampler configuration</a>
<ul></ul>
</li>
<li>
<a href="#miscellaneous">19.35 Miscellaneous configuration</a>
<ul></ul>
</li>
<li>
<a href="#classpath">19.36 Classpath configuration</a>
<ul></ul>
</li>
<li>
<a href="#reporting">19.37 Reporting configuration</a>
<ul></ul>
</li>
<li>
<a href="#properties">19.38 Additional property files to load</a>
<ul></ul>
</li>
<li>
<a href="#validation">19.39 Thread Group Validation feature</a>
<ul></ul>
</li>
<li>
<a href="#timer">19.40 Timer related feature</a>
<ul></ul>
</li>
<li>
<a href="#naming_policy">19.41 Naming Policy</a>
<ul></ul>
</li>
<li>
<a href="#help">19.42 Help</a>
<ul></ul>
</li>
<li>
<a href="#groovy">19.43 Advanced Groovy Scripting configuration</a>
<ul></ul>
</li>
<li>
<a href="#jsr223">19.44 Advanced JSR-223 Scripting configuration</a>
<ul></ul>
</li>
<li>
<a href="#docgeneration">19.45 Documentation generation</a>
<ul></ul>
</li>
<li>
<a href="#securityprovider">19.46 Security Provider</a>
<ul></ul>
</li>
</ul>
<div class="section">
<h1 id="introduction">19 Introduction<a class="sectionlink" href="#introduction" title="Link to here">&para;</a>
</h1>

<div class="description">

<p>
This document describes JMeter properties. The properties present in <span class="code">jmeter.properties</span> or <span class="code">reportgenerator.properties</span> should be set in the <span class="code">user.properties</span> file.
These properties are only taken into account after restarting JMeter as they are usually resolved when the class is loaded.
</p>

</div>

</div>
<div class="section">
<h1 id="language">19.1 Language<a class="sectionlink" href="#language" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">language</div>
<div class="description req-true">
    Preferred GUI language. Comment out to use the JVM default locale's language.<br>
    Example: <pre class="source">language=en</pre>
    
<div class="clear"></div>
<div class="note">This property is the only one that must be set in <span class="code">jmeter.properties</span> file</div>
<div class="clear"></div>
    
<div class="clear"></div>
<div class="note">To fully configure language ensure you set locale, see <a href="http://www.oracle.com/us/technologies/java/locale-140624.html">Internationalization: Understanding Locale in the Java Platform</a>.
    Example for English:
    <pre class="source">-Duser.language=en -Duser.region=EN</pre>
    
</div>
<div class="clear"></div>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">locales.add</div>
<div class="description req-true">
    Additional locale(s) to add to the displayed list.<br>
    The current default list is: <span class="code">en</span>, <span class="code">fr</span>,
    <span class="code">de</span>, <span class="code">no</span>, <span class="code">es</span>, <span class="code">tr</span>,
    <span class="code">ja</span>, <span class="code">zh_CN</span>,
    <span class="code">zh_TW</span>, <span class="code">pl</span>, <span class="code">pt_BR</span>.<br>
    See <span class="code">JMeterMenuBar#makeLanguageMenu()</span>
<br>
    The entries are a comma-separated list of language names.<br>
    Example: <pre class="source">locales.add=zu</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="xml_parser">19.2 XML Parser<a class="sectionlink" href="#xml_parser" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">xpath.namespace.config</div>
<div class="description req-true">
    Path to a Properties file containing Namespace mapping in the form <span class="code">prefix=Namespace</span>.
    Example: <pre class="source">ns=http://biz.aol.com/schema/2006-12-18</pre>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">xpath2query.parser.cache.size</div>
<div class="description req-true">XPath2 query cache for storing compiled XPath queries
    Defaults to <span class="code">400</span>
    
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="ssl_config">19.3 SSL configuration<a class="sectionlink" href="#ssl_config" title="Link to here">&para;</a>
</h1>

<div class="clear"></div>
<div class="note">SSL (Java) System properties are now in <span class="code">system.properties</span>
<br>
JMeter no longer converts <span class="code">javax.<em>xxx</em></span> property entries in
<span class="code">jmeter.properties</span> into System properties. These must now be
defined in the <span class="code">system.properties</span> file or on the command-line. The
<span class="code">system.properties</span> file gives more flexibility.</div>
<div class="clear"></div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">https.sessioncontext.shared</div>
<div class="description req-true">
    By default, SSL session contexts are now created per-thread, rather than being shared.<br>
    The old behaviour can be enabled by setting this property to <span class="code">true</span>. Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.default.protocol</div>
<div class="description req-true">
    Be aware that https default protocol may vary depending on the version of JVM.
    See <a href="https://blogs.oracle.com/java-platform-group/entry/diagnosing_tls_ssl_and_https" target="_blank">Diagnosing TLS, SSL and HTTPS</a>
    and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58236">
      Bug
      58236</a>.
    Default HTTPS protocol level: <pre class="source">https.default.protocol=TLS</pre>
    This may need to be changed to: <pre class="source">https.default.protocol=SSLv3</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.socket.protocols</div>
<div class="description req-true">
    List of protocols to enable. You may have to select only a subset if you find issues with target server.<br>
    This is needed when server does not support Socket version negotiation, this can lead to errors like:
    <span class="code">javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated</span>
    or <span class="code">java.net.SocketException: Connection reset</span>.<br>
    See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54759">
      Bug
      54759</a>, example: <pre class="source">https.socket.protocols=SSLv2Hello SSLv3 TLSv1</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.cipherSuites</div>
<div class="description req-true">
    Comma-separated list of SSL cipher suites that may be used in HTTPS
    connections.  It may be desirable to use a subset of cipher suites in order
    to match expected client behavior or to reduce encryption overhead in
    JMeter when running with large numbers of users. Errors may occur if the
    JVM does not support the specified cipher suites, or if the cipher suites
    supported by the HTTPS server do not overlap this list.  See the
    <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Customization">JSSE
	    Reference Guide.</a>
<br>
    For example: <pre class="source">https.cipherSuites=TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256</pre>
    If not specified, JMeter will use the default list of cipher suites
    supported by the JVM.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.reset_state_on_thread_group_iteration</div>
<div class="description req-true">
Reset HTTP State when starting a new Thread Group iteration.
In summary<span class="code">true</span> means next iteration is associated to a new user.
<span class="code">false</span> means next iteration is associated to same user.
<span class="code">true</span> involves:
 <ul>
    
<li>Closing opened connection</li>
    
<li>resetting SSL State</li>

</ul>
Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.use.cached.ssl.context</div>
<div class="description req-true">
    Control if we allow reuse of cached SSL context between iterations.<br>
    Set the value to <span class="code">false</span> to reset the SSL context each iteration.<br>
    Defaults to: <span class="code">true</span>
    
<div class="clear"></div>
<div class="note">DEPRECATED, you should use <span class="code">httpclient.reset_state_on_thread_group_iteration</span> with correct value</div>
<div class="clear"></div>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.keyStoreStartIndex</div>
<div class="description req-true">
    Start index to be used with keystores with many entries.<br>
    The default is to use entry <span class="code">0</span>, i.e. the first.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">https.keyStoreEndIndex</div>
<div class="description req-true">
    End index to be used with keystores with many entries.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="laf_config">19.4 Look and Feel configuration<a class="sectionlink" href="#laf_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jmeter.laf.windows_10</div>
<div class="description req-true">
    Classname of the Swing default UI<br>
    The LAF classnames that are available are now displayed as ToolTip text when hovering over
    the Options/Look and Feel selection list.<br>
    You can either use a full class name, as shown below, or one of the strings "<span class="code">System</span>"
    or "<span class="code">CrossPlatform</span>" which means JMeter will use the
    corresponding string returned by <span class="code">UIManager.get&lt;name&gt;LookAndFeelClassName()</span>.<br>
    LAF can be overridden by <span class="code">os.name</span> (lowercased, spaces replaced by '_').<br>
    
<div class="example">
<div class="title">Order of LAF property lookup<a class="sectionlink" href="#order-laf-lookup" title="Link to here">&para;</a>
</div>
        Take for example an <span class="code">os.name</span> of <span class="code">Windows 10</span>.<br>
        JMeter would look first for a property
        <pre class="source">jmeter.laf.windows_10=javax.swing.plaf.metal.MetalLookAndFeel</pre>
        Failing that, the OS family <span class="code">os.name</span> would be used shortened to the first space. In our example
        JMeter would therefore look for a property
        <pre class="source">jmeter.laf.windows=com.sun.java.swing.plaf.windows.WindowsLookAndFeel</pre>
    
</div>
    
<div class="clear"></div>
<div class="note">
        Mac apparently looks better with the System LAF set through
        <pre class="source">jmeter.laf.mac=System</pre>
        Failing that, the JMeter default LAF can be defined through:
        <pre class="source">jmeter.laf=System</pre>
        If none of the above <span class="code">jmeter.laf</span> properties are defined, JMeter uses the <span class="code">CrossPlatform</span> LAF.
        This is because the <span class="code">CrossPlatform</span> LAF generally looks better than the <span class="code">System</span> LAF.
        See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52026">
      Bug
      52026</a> for details.
    </div>
<div class="clear"></div>
    
<div class="clear"></div>
<div class="note">When you change Look and Feel (LAF) from JMeter GUI through menu Options &gt; Look and Feel,
    you should restart JMeter to ensure change is fully effective.</div>
<div class="clear"></div>
 
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.loggerpanel.display</div>
<div class="description req-true">
    Display LoggerPanel.<br>
    Defaults to: <span class="code">false</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.loggerpanel.enable_when_closed</div>
<div class="description req-true">
    Enable LogViewer Panel to receive log event even when closed.<br>
    Enabled since 2.12<br>
    
<div class="clear"></div>
<div class="note">Note this has some impact on performances, but as GUI mode must not be used for Load Test it is acceptable</div>
<div class="clear"></div>
    Defaults to: <span class="code">true</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.loggerpanel.maxlength</div>
<div class="description req-true">
     Max lines kept in LoggerPanel, <span class="code">0</span> means no limit.<br>
     Defaults to: <span class="code">1000</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.gui.refresh_period</div>
<div class="description req-true">
    Interval period in <span class="code">ms</span> to process the events of the listeners.<br>
    Defaults to: <span class="code">500</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="darklaf_config">19.4.1 Darklaf configuration<a class="sectionlink" href="#darklaf_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">darklaf.decorations</div>
<div class="description req-true">
        Enables custom window chrome when using a Darklaf Look And Feel.
        Defaults to: <span class="code">false</span>
</div>
<div class="required req-true">
            No
          </div>
</div>
    
<div class="property">
<div class="name req-true">darklaf.unifiedMenuBar</div>
<div class="description req-true">
        Enables the unified menubar on Windows when using a Darklaf Look and Feel.<br>
        This property only has an effect if <span class="code">darklaf.native</span> is <span class="code">true</span>.
        Defaults to: <span class="code">true</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="toolbar_display">19.5 Toolbar display<a class="sectionlink" href="#toolbar_display" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jmeter.toolbar.icons</div>
<div class="description req-true">
    Toolbar icon definitions.<br>
    Defaults to <span class="code">org/apache/jmeter/images/toolbar/icons-toolbar.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.toolbar</div>
<div class="description req-true">
    Toolbar list.<br>
    Defaults to:
    <pre class="source">new,open,close,save,save_as_testplan,|,cut,copy,paste,|,expand,collapse,toggle,|,test_start,test_stop,test_shutdown,|,test_start_remote_all,test_stop_remote_all,test_shutdown_remote_all,|,test_clear,test_clear_all,|,search,search_reset,|,function_helper,help</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.toolbar.icons.size</div>
<div class="description req-true">
    Available sizes are: <span class="code">22x22</span>, <span class="code">32x32</span>, <span class="code">48x48</span>. Suggested value for HiDPI mode is
    <pre class="source">jmeter.toolbar.icons.size=48x48</pre>
    Defaults to: <span class="code">22x22</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.icons</div>
<div class="description req-true">
    Icon definitions. Alternate set:
    <pre class="source">jmeter.icons=org/apache/jmeter/images/icon_1.properties</pre>
    Historical icon set (deprecated):
    <pre class="source">jmeter.icons=org/apache/jmeter/images/icon_old.properties</pre>
    Defaults to:<span class="code">org/apache/jmeter/images/icon.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.tree.icons.size</div>
<div class="description req-true">
    Available sizes are: <span class="code">19x19</span>, <span class="code">24x24</span>, <span class="code">32x32</span>, <span class="code">48x48</span>.
    Useful for HiDPI display (see below).<br>
    Defaults to: <span class="code">19x19</span>
<br>
    Suggested value for HiDPI screen like 3200x1800 is: <span class="code">32x32</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.hidpi.mode</div>
<div class="description req-true">
    HiDPI mode. Activate a '<em>pseudo</em>'-HiDPI mode. Allows to increase size of some UI
    elements which are not correctly managed by JVM with high resolution screens in Linux or Windows.<br>
    Defaults to: <span class="code">false</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.hidpi.scale.factor</div>
<div class="description req-true">
    HiDPI scale factor. Suggested value for HiDPI: <span class="code">2.0</span>.
    Defaults to: <span class="code">1.0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">not_in_menu</div>
<div class="description req-true">
    Components to not display in JMeter GUI (GUI class name or static label).<br>
    These elements are deprecated and will be removed in next version:
    <pre class="source">MongoDB Script, MongoDB Source Config</pre>
    Defaults to:
    <pre class="source">org.apache.jmeter.protocol.mongodb.sampler.MongoScriptSampler, org.apache.jmeter.protocol.mongodb.config.MongoSourceElement</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">undo.history.size</div>
<div class="description req-true">
    Number of items in undo history.<br>
    Feature is disabled by default (<span class="code">0</span>) due to known and not fixed bugs
    <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57043">
      Bug
      57043</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57039">
      Bug
      57039</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57040">
      Bug
      57040</a>.
    Set it to a number greater than zero (<span class="code">25</span> can be a good default).<br>
    The bigger it is, the more memory will be consumed.
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">gui.quick_X</div>
<div class="description req-true">
    Hotkeys to add JMeter components where <span class="code"><em>X</em></span> is the shortcut key, for example:
<pre class="source">
gui.quick_0=ThreadGroupGui
gui.quick_1=HttpTestSampleGui
gui.quick_2=RegexExtractorGui
gui.quick_3=AssertionGui
gui.quick_4=ConstantTimerGui
gui.quick_5=TestActionGui
gui.quick_6=JSR223PostProcessor
gui.quick_7=JSR223PreProcessor
gui.quick_8=DebugSampler
gui.quick_9=ViewResultsFullVisualizer
</pre>
    Above code will add the corresponding elements when you press
    <span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">0</span></span> &hellip;
    <span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">9</span></span>
    (<span class="keycombo"><span class="keysym">&#8984;</span>&nbsp;+&nbsp;<span class="keysym">0</span></span> &hellip;
    <span class="keycombo"><span class="keysym">&#8984;</span>&nbsp;+&nbsp;<span class="keysym">9</span></span> on Mac)
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="backup">19.6 JMX Backup configuration<a class="sectionlink" href="#backup" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jmeter.gui.action.save.backup_on_save</div>
<div class="description req-true">
    Enable auto backups of the <span class="code">.jmx</span> file when a test plan is saved.<br>
    When enabled, before the <span class="code">.jmx</span> is saved, it will be backed up to the directory
    pointed to by the <span class="code">jmeter.gui.action.save.backup_directory</span> property (see below).
    Backup file names are built after the jmx file being saved. For example,
    saving <span class="code">test-plan.jmx</span> will create a <span class="code">test-plan-000012.jmx</span> in the backup
    directory provided that the last created backup file is <span class="code">test-plan-000011.jmx</span>.<br>
    Default value is <span class="code">true</span> indicating that auto backups are enabled.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.gui.action.save.backup_directory</div>
<div class="description req-true">
    Set the backup directory path where JMX backups will be created upon save in the GUI.<br>
    If not set (what it defaults to) then backup files will be created in a sub-directory of
    the JMeter base installation. If set and the directory does not exist, a corresponding directory will be created.<br>
    Defaults to: <span class="code">${JMETER_HOME}/backups</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.gui.action.save.keep_backup_max_hours</div>
<div class="description req-true">
    Set the maximum time (in hours) that backup files should be preserved since the save time.<br>
    By default no expiration time is set which means we keep backups for ever.<br>
    Defaults to: <span class="code">0</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.gui.action.save.keep_backup_max_count</div>
<div class="description req-true">
    Set the maximum number of backup files that should be preserved.
    By default ten backups will be preserved.<br>
    Setting this to zero will cause the backups to not being deleted (unless <span class="code">keep_backup_max_hours</span>
    is set to a non zero value).<br>
    Defaults to: <span class="code">10</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">save_automatically_before_run</div>
<div class="description req-true">
Enable auto saving of the .jmx file before start run a test plan<br>
When enabled, before the run, the .jmx will be saved and also backed up to the directory pointed.<br>
Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="remote">19.7 Remote hosts and RMI configuration<a class="sectionlink" href="#remote" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">remote_hosts</div>
<div class="description req-true">
    Remote Hosts - comma delimited, for example
    <pre class="source">remote_hosts=localhost:1099,localhost:2010</pre>
    Defaults to: <span class="code">127.0.0.1</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server_port</div>
<div class="description req-true">
    RMI port to be used by the server (must start <span class="code">rmiregistry</span> with same port).
    To change the port to (say) <span class="code">1234</span>:<br>
    On the server(s):
    <ol>
        
<li>
<span class="code">set server_port=1234</span>
</li>
        
<li>start <span class="code">rmiregistry</span> with port <span class="code">1234</span>
</li>
    
</ol>
    On Windows this can be done by:
    <pre class="source">SET SERVER_PORT=1234
JMETER-SERVER</pre>
    On Unix:
    <pre class="source">SERVER_PORT=1234 jmeter-server</pre>
    On the Windows client:
    <pre class="source">set remote_hosts=<em>server</em>:1234</pre>
    On the Unix client:
    <pre class="source">export remote_hosts=<em>server</em>:1234</pre>
    Defaults to: <span class="code">1099</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">client.rmi.localport</div>
<div class="description req-true">
    Parameter that controls the RMI port used by the <span class="code">RemoteSampleListenerImpl</span> (The Controller)<br>
    Default value is <span class="code">0</span>, which means port is randomly assigned.
    If this is non-zero, it will be used as the base for local port numbers for the client engine.
    At the moment JMeter will open up to three ports beginning with the port defined in this property.
    <div class="clear"></div>
<div class="note">You may need to open corresponding ports in the firewall on the Controller machine.</div>
<div class="clear"></div>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">client.tries</div>
<div class="description req-true">
    When distributed test is starting, there may be several attempts to initialize remote engines.<br>
    By default, only a single try is made. Increase this property to make it retry additional times.<br>
    Defaults to: <span class="code">1</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">client.retries_delay</div>
<div class="description req-true">
    If initialization is retried, this property sets the delay between those attempts in milliseconds.<br>
    Defaults to: <span class="code">5000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">client.continue_on_fail</div>
<div class="description req-true">
    When all initialization tries were made, the test will fail, if any remote engines are failed.<br>
    Set this property to <span class="code">true</span> to ignore failed nodes and proceed with test.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.port</div>
<div class="description req-true">
    To change the default port (<span class="code">1099</span>) used to access the server.<br>
    Defaults to: <span class="code">1099</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.localport</div>
<div class="description req-true">
    To use a specific port for the JMeter server engine, define this property before starting the server.<br>
    Defaults to: <span class="code">4000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.create</div>
<div class="description req-true">
    From JMeter version 2.3.1, the JMeter server creates the RMI registry as part of the server process.<br>
    Set this property to <span class="code">false</span>, to stop the server creating the RMI registry.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.exitaftertest</div>
<div class="description req-true">
    From JMeter version 2.3.1, define this property to cause JMeter to exit after the first test.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.keystore.type</div>
<div class="description req-true">
    Type of keystore for RMI connection security. Possible values are dependent on the JVM in use, but commonly supported are <span class="code">JKS</span> and <span class="code">PKCS12</span>.
    Defaults to: <span class="code">JKS</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.keystore.file</div>
<div class="description req-true">
    Keystore file that contains private key
    Defaults to: <span class="code">rmi_keystore.jks</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.keystore.password</div>
<div class="description req-true">
    Password of Keystore
    Defaults to: <span class="code">changeit</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.keystore.alias</div>
<div class="description req-true">
    Key alias
    Defaults to: <span class="code">rmi</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.truststore.type</div>
<div class="description req-true">
    Type of truststore for RMI connection security
    Defaults to: the value of <span class="code">server.rmi.ssl.keystore.type</span>, which is <span class="code">JKS</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.truststore.file</div>
<div class="description req-true">
    Keystore file that contains certificate
    Defaults to: the value of <span class="code">server.rmi.ssl.keystore.file</span>, which is <span class="code">rmi_keystore.jks</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.truststore.password</div>
<div class="description req-true">
    Password of Trust store
    Defaults to: the value of <span class="code">server.rmi.ssl.keystore.password</span>, which is <span class="code">changeit</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">server.rmi.ssl.disable</div>
<div class="description req-true">
    Set this to <span class="code">true</span> if you don't want to use SSL for RMI
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="include_controller">19.8 Include Controller<a class="sectionlink" href="#include_controller" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">includecontroller.prefix</div>
<div class="description req-true">
    Prefix used by <span class="code">IncludeController</span> when building file names.<br>
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="http_java_config">19.9 HTTP Java configuration<a class="sectionlink" href="#http_java_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">http.java.sampler.retries</div>
<div class="description req-true">
    Number of connection retries performed by HTTP Java sampler before giving up.
    <span class="code">0</span> means no retry since version 3.0.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="httpclient_common_properties">19.10 Apache HttpClient common properties<a class="sectionlink" href="#httpclient_common_properties" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">http.post_add_content_type_if_missing</div>
<div class="description req-true">
    Should JMeter add to POST request a Header <span class="code">Content-type: application/x-www-form-urlencoded</span> if missing? <br>
    Was true before version 4.1.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.timeout</div>
<div class="description req-true">
    Set the socket timeout (or use the parameter <span class="code">http.socket.timeout</span>) for
    AJP Sampler.<br>
    Value is in milliseconds, <span class="code">0</span> means no timeout.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.version</div>
<div class="description req-true">
    Set the http version.<br>
    Defaults to: <span class="code">1.1</span> (or use the parameter <span class="code">http.protocol.version</span>)
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.socket.http.cps</div>
<div class="description req-true">
    Set characters per second to a value greater then zero to emulate slow connections.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.socket.https.cps</div>
<div class="description req-true">
    Same as before but for https.
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.loopback</div>
<div class="description req-true">
    Enable loopback protocol.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient.localaddress</div>
<div class="description req-true">
    Define the local host address to be used for multi-homed hosts,
    example <pre class="source">httpclient.localaddress=1.2.3.4</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">http.proxyUser</div>
<div class="description req-true">
    Set the user name to use with a proxy.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">http.proxyPass</div>
<div class="description req-true">
    Set the password to use with a proxy.
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="kerberos">19.11 Kerberos properties<a class="sectionlink" href="#kerberos" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">kerberos_jaas_application</div>
<div class="description req-true">
    AuthManager Kerberos configuration<br>
    Name of application module used in <span class="code">jaas.conf</span>.<br>
    Defaults to: <span class="code">JMeter</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">kerberos.spnego.strip_port</div>
<div class="description req-true">
    Should port be stripped from urls before constructing SPNs for SPNEGO authentication.
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">kerberos.spnego.delegate_cred</div>
<div class="description req-true">
    Should SPNEGO authentication should use delegation of credentials.
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="httpclient_logging_examples">19.12 Apache HttpClient logging examples<a class="sectionlink" href="#httpclient_logging_examples" title="Link to here">&para;</a>
</h1>

<div class="description">
    Enable header wire and context logging - Best for Debugging
    In log4j2.xml, set:
<pre class="source">
&lt;Logger name="org.apache.http" level="debug" /&gt;
&lt;Logger name="org.apache.http.wire" level="error" /&gt;
</pre>
    Enable full wire and context logging
    In log4j2.xml, set:
    <pre class="source">&lt;Logger name="org.apache.http" level="debug" /&gt;</pre>
    Enable context logging for connection management
    <pre class="source">&lt;Logger name="org.apache.http.impl.conn" level="debug" /&gt;</pre>
    Enable context logging for connection management / request execution
<pre class="source">
&lt;Logger name="org.apache.http.impl.conn" level="debug" /&gt;
&lt;Logger name="org.apache.http.impl.client" level="debug" /&gt;
&lt;Logger name="org.apache.http.client" level="debug" /&gt;
</pre>

</div>

</div>
<div class="section">
<h1 id="httpclient4">19.13 Apache HttpComponents HTTPClient configuration (HTTPClient4)<a class="sectionlink" href="#httpclient4" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">hc.parameters.file</div>
<div class="description req-true">
    Define a properties file for overriding Apache HttpClient parameters.<br>
    Uncomment this line if you put anything in <span class="code">hc.parameters</span> file.<br>
    Defaults to: <span class="code">hc.parameters</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.auth.preemptive</div>
<div class="description req-true">
    Preemptively send Authorization Header when BASIC auth is used
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.retrycount</div>
<div class="description req-true">
    Number of retries to attempt.
    Retry will be done on Idempotent Http Methods by default.
    If you want to retry for all methods, see property <span class="code">httpclient4.request_sent_retry_enabled</span>
    
<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.request_sent_retry_enabled</div>
<div class="description req-true">
    Set this property to <span class="code">true</span> if it's OK to retry requests that have been sent.
    This mean that both Idempotent and non Idempotent requests will be retried.
    This should usually be false, but it can be useful when testing against some Load Balancers like Amazon ELB.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.idletimeout</div>
<div class="description req-true">
    Idle connection timeout (in milliseconds) to apply if the server does not send <span class="code">Keep-Alive</span> timeout headers.<br>
    Defaults to: <span class="code">0</span> (no suggested duration for <span class="code">Keep-Alived</span> connections)
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.validate_after_inactivity</div>
<div class="description req-true">
    Check connection if the elapsed time (in milliseconds) since the last use of the connection
    exceeds this value. Ensure this value is always lower by at least 150 ms than <span class="code">httpclient4.time_to_live</span>
<br>
    Defaults to: <span class="code">4900</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.time_to_live</div>
<div class="description req-true">
    
<abbr title="time to live">TTL</abbr> (in milliseconds) represents an absolute value.
    No matter what, the connection will not be re-used beyond its TTL.<br>
    Defaults to: <span class="code">60000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.deflate_relax_mode</div>
<div class="description req-true">
    Ignore EOFException that some edgy application may emit to signal end of Deflated stream.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.gzip_relax_mode</div>
<div class="description req-true">
    Ignore EOFException that some edgy application may emit to signal end of GZipped stream.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpclient4.default_user_agent_disabled</div>
<div class="description req-true">
    If true, default HC4 User-Agent (Apache-HttpClient/X.Y.Z (Java/A.B.C_D)) will not be added.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="cache_manager">19.14 HTTP Cache Manager configuration<a class="sectionlink" href="#cache_manager" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">cacheable_methods</div>
<div class="description req-true">
    Space or comma separated list of methods that can be cached.<br>
    Defaults to: <span class="code">GET</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">cache_manager.cached_resource_mode</div>
<div class="description req-true">
    
<div class="clear"></div>
<div class="note">N.B. This property is currently a temporary solution for <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56162">
      Bug
      56162</a>.</div>
<div class="clear"></div>
    Since version 2.12, JMeter does not create anymore a Sample Result with a response
    code of <span class="code">204</span> for a resource found in cache. This is in line with what browser do.<br>
    You can choose between three modes:
    <dl>
        
<dt>
<span class="code">RETURN_NO_SAMPLE</span> (default)</dt>
        
<dd>this mode returns no Sample Result. It has no additional configuration.</dd>
        
<dt>
<span class="code">RETURN_200_CACHE</span>
</dt>
        
<dd>this mode will return Sample Result with response code to <span class="code">200</span> and
        response message to "<span class="code">(ex cache)</span>".</dd>
        
<dt>
<span class="code">RETURN_CUSTOM_STATUS</span>
</dt>
        
<dd>choosing this mode, response code and message have to be set by specifying
        <span class="code">RETURN_CUSTOM_STATUS.code</span> and <span class="code">RETURN_CUSTOM_STATUS.message</span>.</dd>
    
</dl>
    Defaults to: <span class="code">RETURN_NO_SAMPLE</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">RETURN_CUSTOM_STATUS.code</div>
<div class="description req-true">
    This lets you select what response code you want to return if mode <span class="code">RETURN_CUSTOM_STATUS</span>
    is selected.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">RETURN_CUSTOM_STATUS.message</div>
<div class="description req-true">
    This lets you select what response message you want to return if mode <span class="code">RETURN_CUSTOM_STATUS</span>
    is selected.<br>
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="results_file_config">19.15 Results file configuration<a class="sectionlink" href="#results_file_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.output_format</div>
<div class="description req-true">
    This section helps determine how result data will be saved.<br>
    The commented out values are the defaults.<br>
    Legitimate values: <span class="code">xml</span>, <span class="code">csv</span>, <span class="code">db</span>.<br>
    Only <span class="code">xml</span> and <span class="code">csv</span> are currently supported.<br>
    Defaults to: <span class="code">csv</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.assertion_results_failure_message</div>
<div class="description req-true">
    
<span class="code">true</span> when field should be saved; <span class="code">false</span> otherwise.<br>
    
<span class="code">assertion_results_failure_message</span> only affects CSV output.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.assertion_results</div>
<div class="description req-true">
    Legitimate values: <span class="code">none</span>, <span class="code">first</span>, <span class="code">all</span>.<br>
    Defaults to: <span class="code">none</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.data_type</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.label</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.response_code</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.response_data</div>
<div class="description req-true">
    
<div class="clear"></div>
<div class="note">
<span class="code">response_data</span> is currently not supported for CSV output</div>
<div class="clear"></div>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.response_data.on_error</div>
<div class="description req-true">
    Save ResponseData for failed samples.
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.response_message</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.successful</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.thread_name</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.time</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.subresults</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.assertions</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.latency</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.connect_time</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.samplerData</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.responseHeaders</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.requestHeaders</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.encoding</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.bytes</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.url</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.filename</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.hostname</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.thread_counts</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.sample_count</div>
<div class="description req-true">
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.idle_time</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.timestamp_format</div>
<div class="description req-true">
    Timestamp format - this only affects CSV output files.<br>
    Legitimate values: <span class="code">none</span>, <span class="code">ms</span>, or a format suitable for <span class="code">SimpleDateFormat</span>.<br>
    Defaults to: <span class="code">ms</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.timestamp_format</div>
<div class="description req-true">
    Defaults to: <span class="code">yyyy/MM/dd HH:mm:ss.SSS</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.default_delimiter</div>
<div class="description req-true">
    For use with Comma-separated value (CSV) files or other formats where the fields' values
    are separated by specified delimiters.<br>
    Defaults to: <span class="code">,</span>
    
<div class="clear"></div>
<div class="note">For TAB, one can use <span class="code">\t</span>
</div>
<div class="clear"></div>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.print_field_names</div>
<div class="description req-true">
    Only applies to CSV format files:<br>
    Print field names as first line in CSV<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">sample_variables</div>
<div class="description req-true">
    Optional list of JMeter variable names whose values are to be saved in the result data files.<br>
    Use commas to separate the names.<br>
    Defaults to: <span class="code">SESSION_ID,REFERENCE</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.xml_pi</div>
<div class="description req-true">
    
<div class="clear"></div>
<div class="note">N.B. The current implementation saves the values in XML as attributes, so the names must be valid XML names.</div>
<div class="clear"></div>
    Versions of JMeter after 2.3.2 send the variable to all servers to ensure that the correct data is available at the client.<br>
    Optional XML processing instruction for line two of the file.<br>
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.base_prefix</div>
<div class="description req-true">
    Prefix used to identify filenames that are relative to the current base.<br>
    Defaults to: <span class="code">~/</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.save.saveservice.autoflush</div>
<div class="description req-true">
    AutoFlush on each line written in XML or CSV output.<br>
    Setting this to <span class="code">true</span> will result in less test results data loss in case of a crash, but
    with impact on performances, particularly for intensive tests (low or no pauses).<br>
    Since JMeter version 2.10, this is <span class="code">false</span> by default.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="sample_results">19.16 Settings that affect SampleResults<a class="sectionlink" href="#sample_results" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">sampleresult.timestamp.start</div>
<div class="description req-true">
    Save the start time stamp instead of the end.<br>
    This also affects the timestamp stored in result files.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">sampleresult.useNanoTime</div>
<div class="description req-true">
    Whether to use <span class="code">System.nanoTime()</span> - otherwise only use <span class="code">System.currentTimeMillis()</span>.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">sampleresult.nanoThreadSleep</div>
<div class="description req-true">
    Use a background thread to calculate the nanoTime offset.<br>
    Set this to a value less than zero to disable the background thread.<br>
    Defaults to: <span class="code">5000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">subresults.disable_renaming</div>
<div class="description req-true">
    Since version 5.0 JMeter has a new SubResult Naming Policy which numbers subresults by default<br>
    This property if set to <span class="code">true</span> discards renaming policy. This can be required if you're using JMeter for functional testing.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="upgrade">19.17 Upgrade<a class="sectionlink" href="#upgrade" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">upgrade_properties</div>
<div class="description req-true">
    File that holds a record of name changes for backward compatibility issues.<br>
    Defaults to: <span class="code">/bin/upgrade.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="test_script_recorder">19.18 JMeter Test Script recorder configuration<a class="sectionlink" href="#test_script_recorder" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">proxy.pause</div>
<div class="description req-true">
    
<div class="clear"></div>
<div class="note">N.B. The element was originally called the Proxy recorder, which is why the properties
    have the prefix "proxy".</div>
<div class="clear"></div>
    If the recorder detects a gap of at least 5s (default) between HTTP requests, it assumes
    that the user has clicked a new URL. Specified in milliseconds.<br>
    Defaults to: <span class="code">5000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.number.requests</div>
<div class="description req-true">
    Add numeric suffix to Sampler names.<br>
    defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.sampler_format</div>
<div class="description req-true">
    Default format string for new samplers when <span class="code">Use format string</span> is selected
    as <span class="code">naming scheme</span>.<br>
    Defaults to: <span class="code">#{counter,number,000} - #{path} (#{name})</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.excludes.suggested</div>
<div class="description req-true">
    List of URL patterns that will be added to URL Patterns to exclude.<br>
    Separate multiple lines with <span class="code">;</span>
<br>
    Defaults to: <span class="code">.*\\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.httpsampler</div>
<div class="description req-true">
    Change the default HTTP Sampler.<br>
    Can be one of
    <dl>
        
<dt>
<span class="code">HTTPSampler</span> or <span class="code">Java</span>
</dt>
        
<dd>Use the <span class="code">Java</span> Sampler</dd>
        
<dt>
<span class="code">HTTPSampler2</span>
</dt>
        
<dt>
<span class="code">HttpClient4</span>
</dt>
        
<dd>Use Apache HTTPClient version 4</dd>
    
</dl>
    Defaults to: <span class="code">HttpClient4</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.httpclient.strict_rfc2616</div>
<div class="description req-true">
    By default JMeter tries to be more lenient with <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>
    redirects and allows relative paths.<br>
    If you want to test strict conformance, set this value to <span class="code">true</span>.<br>
    When the property is <span class="code">true</span>, JMeter follows
    <a href="https://tools.ietf.org/html/3986#section-5.2">RFC 3986 section 5.2</a>.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.content_type_include</div>
<div class="description req-true">
    Default <span class="code">content-type</span> include filter to use. Specified as a regex.<br>
    Defaults to: <span class="code">text/html|text/plain|text/xml</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.content_type_exclude</div>
<div class="description req-true">
    Default <span class="code">content-type</span> exclude filter to use. Specified as a regex.<br>
    Defaults to: <span class="code">image/.*|text/css|application/.*</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.headers.remove</div>
<div class="description req-true">
    Default headers to remove from Header Manager elements. Specified as comma separated list<br>
    
<div class="clear"></div>
<div class="note">The headers <span class="code">Cookie</span> and <span class="code">Authorization</span> are always removed.</div>
<div class="clear"></div>
    Defaults to: <span class="code">If-Modified-Since,If-None-Match,Host</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.binary.types</div>
<div class="description req-true">
    Binary <span class="code">content-type</span> handling.<br>
    These <span class="code">content-types</span> will be handled by saving the request in a file.<br>
    Defaults to: <span class="code">application/x-amf,application/x-java-serialized-object,binary/octet-stream</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.binary.directory</div>
<div class="description req-true">
    The files will be saved in this directory.<br>
    Defaults to: <span class="code">user.dir</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.binary.filesuffix</div>
<div class="description req-true">
    The files will be created suffixed with this value.<br>
    Defaults to: <span class="code">.binary</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.redirect.disabling</div>
<div class="description req-true">
    Whether to attempt disabling of samples that resulted from redirects where the
    generated samples use auto-redirection.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.ssl.protocol</div>
<div class="description req-true">
    SSL configuration.<br>
    Defaults to: <span class="code">TLS</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="test_script_recorder_cert">19.19 Test Script Recorder certificate configuration<a class="sectionlink" href="#test_script_recorder_cert" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.directory</div>
<div class="description req-true">
    Defaults to: <em>JMeter <span class="code">bin</span> directory</em>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.file</div>
<div class="description req-true">
    Defaults to: <span class="code">proxyserver.jks</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.type</div>
<div class="description req-true">
    Defaults to: <span class="code">JKS</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.keystorepass</div>
<div class="description req-true">
    Defaults to: <span class="code">password</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.keypassword</div>
<div class="description req-true">
    Defaults to: <span class="code">password</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.factory</div>
<div class="description req-true">
    Defaults to: <span class="code">SunX509</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.alias</div>
<div class="description req-true">
    Define this property if you wish to use a special entry from the keystore.<br>
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.validity</div>
<div class="description req-true">
    The default validity (in days) for certificates created by JMeter.<br>
    Defaults to: <span class="code">7</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">proxy.cert.dynamic_keys</div>
<div class="description req-true">
    Use dynamic key generation (if supported by JMeter/JVM).<br>
    If <span class="code">false</span>, will revert to using a single key with no certificate.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="proxy_config">19.20 JMeter Proxy configuration<a class="sectionlink" href="#proxy_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">http.proxyDomain</div>
<div class="description req-true">
    Use command-line flags for user-name and password.<br>
    Defaults to: NTLM domain, if required by HTTPClient sampler
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="parser_config">19.21 HTML Parser configuration<a class="sectionlink" href="#parser_config" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">HTTPResponse.parsers</div>
<div class="description req-true">
    Space-separated list of parser groups.<br>
    
<div class="clear"></div>
<div class="note">For each parser, there should be a <span class="code"><em>parser</em>.types</span> and a <span class="code"><em>parser</em>.className</span> property</div>
<div class="clear"></div>
    Defaults to: <span class="code">htmlParser wmlParser cssParser</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">cssParser.className</div>
<div class="description req-true">
    CSS Parser based on ph-css.<br>
    Defaults to: <span class="code">org.apache.jmeter.protocol.http.parser.CssParser</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">cssParser.types</div>
<div class="description req-true">
    Content types handled by cssParser.<br>
    Defaults to: <span class="code">text/css</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">css.parser.cache.size</div>
<div class="description req-true">
    CSS parser LRU cache size. This cache stores the URLs found in a CSS to avoid continuously
    parsing the CSS. By default the cache size is 400. It can be disabled by setting its value to 0.<br>
    Defaults to: <span class="code">400</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">css.parser.ignore_all_css_errors</div>
<div class="description req-true">
    Let the CSS Parser ignore all CSS errors.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">htmlParser.className</div>
<div class="description req-true">
    Define the HTML parser to be used.<br>
    Do not comment this property.<br>
    
<dl>
        
<dt>
<span class="code">org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser</span>
</dt>
        
<dd>This new parser (since 2.10) should perform better than all others. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a>.</dd>
        
<dt>
<span class="code">org.apache.jmeter.protocol.http.parser.JTidyHTMLParser</span>
</dt>
        
<dd>Default parser before JMeter version 2.10</dd>
        
<dt>
<span class="code">org.apache.jmeter.protocol.http.parser.RegexpHTMLParser</span>
</dt>
        
<dd>
<div class="clear"></div>
<div class="note">Note that Regexp extractor may detect references that have been commented out.</div>
<div class="clear"></div>
         In many cases it will work OK, but you should be aware that it may generate additional references.</dd>
        
<dt>
<span class="code">org.apache.jmeter.protocol.http.parser.JsoupBasedHtmlParser</span>
</dt>
        
<dd>This parser is based on JSoup. It should be the most accurate parser,
        but it is less performant than LagartoBasedHtmlParser</dd>
    
</dl>
    Defaults to: <span class="code">org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser</span>

</div>
<div class="required req-true">Yes</div>
</div>

<div class="property">
<div class="name req-true">htmlParser.types</div>
<div class="description req-true">
    Used by HTTPSamplerBase to associate htmlParser with content types below.<br>
    Defaults to: <span class="code">text/html application/xhtml+xml application/xml text/xml</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">wmlParser.className</div>
<div class="description req-true">
    Defaults to: <span class="code">org.apache.jmeter.protocol.http.parser.RegexpHTMLParser</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">wmlParser.types</div>
<div class="description req-true">
    Used by HTTPSamplerBase to associate wmlParser with content types below.<br>
    Defaults to: <span class="code">text/vnd.wap.wml</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="remote_batching_config">19.22 Remote batching configuration<a class="sectionlink" href="#remote_batching_config" title="Link to here">&para;</a>
</h1>
    
<p>
    Configure how SampleResults are sent from server to client when using distributed testing.
    </p>
    
<div class="clear"></div>
<div class="note">Note that the mode is currently resolved on the client, while other properties
    (e.g. <span class="code">time_threshold</span>) are resolved on the server.</div>
<div class="clear"></div>
    
<p>
    Since JMeter version 2.9, default is <span class="code">StrippedBatch</span>, which returns samples in
    batch mode (every 100 samples or every minute by default).<br>
    You can set mode by configuring:
    </p>
    
<pre class="source">mode=<em>one of the possible modes below</em>
</pre>
    
<div class="clear"></div>
<div class="note">StrippedBatch strips response data from SampleResult, so if you need the response data, change to another mode.</div>
<div class="clear"></div>
    
<p>
    Possible modes are:
    </p>
    
<dl>
        
<dt>
<span class="code">Standard</span>
</dt>
        
<dd>Sends SampleResult one by one</dd>
        
<dt>
<span class="code">Batch</span>
</dt>
        
<dd>Accumulates SampleResults before sending them. Configured by
        properties <span class="code">num_sample_threshold</span> and <span class="code">time_threshold</span>
</dd>
        
<dt>
<span class="code">Statistical</span>
</dt>
        
<dd>returns sample summary statistics. Configured by
        properties <span class="code">key_on_threadname</span> and <span class="code">time_threshold</span>
</dd>
        
<dt>
<span class="code">Stripped</span>
</dt>
        
<dd>Similar to <span class="code">Standard</span> mode but strips Response from SampleResult.
        Configured by property <span class="code">sample_sender_strip_also_on_error</span>
</dd>
        
<dt>
<span class="code">StrippedBatch</span>
</dt>
        
<dd>Same as <span class="code">Batch</span> but strips Response from SampleResult.
        Configured by properties <span class="code">num_sample_threshold</span>, <span class="code">time_threshold</span>
        and <span class="code">sample_sender_strip_also_on_error</span>
</dd>
        
<dt>
<span class="code">Asynch</span>
</dt>
        
<dd>Asynchronous sender; uses a queue and background worker process to return the samples.
        Configured by property <span class="code">asynch.batch.queue.size</span>
</dd>
        
<dt>
<span class="code">StrippedAsynch</span>
</dt>
        
<dd>Same as <span class="code">Asynch</span> but strips response data from SampleResult.
        Configured by properties <span class="code">asynch.batch.queue.size</span>
        and <span class="code">sample_sender_strip_also_on_error</span>
</dd>
        
<dt>
<span class="code">StrippedDiskStore</span>
</dt>
        
<dd>Same as <span class="code">DiskStore</span> but strips response data from SampleResult</dd>
        
<dt>Class extending <a href="../api/org/apache/jmeter/samplers/AbstractSampleSender.html">AbstractSampleSender</a> (<span class="code">org.example.load.MySampleSender</span> for example)</dt>
        
<dd>A custom implementation of your choice</dd>
    
</dl>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">sample_sender_client_configured</div>
<div class="description req-true">
    How is Sample sender implementations configured:<br>
    
<dl>
        
<dt>
<span class="code">true</span>
</dt>
<dd>(default) means client configuration will be used</dd>
        
<dt>
<span class="code">false</span>
</dt>
<dd>means server configuration will be used</dd>
    
</dl>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">sample_sender_strip_also_on_error</div>
<div class="description req-true">
    By default when Stripping modes are used JMeter since version 3.1 will strip
    response even for SampleResults in error. If you want to revert to previous
    behaviour (no stripping of Responses in error) set this property to <span class="code">false</span>
<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>


<div class="property">
<div class="name req-true">mode</div>
<div class="description req-true">
    Remote batching support.<br>
    Since JMeter version 2.9, default is <span class="code">StrippedBatch</span>, which returns samples in
    batch mode (every 100 samples or every minute by default).<br>
    
<div class="clear"></div>
<div class="note">Note also that StrippedBatch strips response data from SampleResult, so if you need
    the response data, change to another mode.</div>
<div class="clear"></div>

</div>
<div class="required req-true">
            No
          </div>
</div>


<div class="property">
<div class="name req-true">key_on_threadname</div>
<div class="description req-true">
    Set to <span class="code">true</span> to key statistical samples on <span class="code">threadName</span> rather than <span class="code">threadGroup</span>.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">num_sample_threshold</div>
<div class="description req-true">
    Number of SampleResults to accumulate before sending to client.<br>
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">time_threshold</div>
<div class="description req-true">
    Time to retain SampleResults before sending them to client.
    Value is in milliseconds.<br>
    Defaults to: <span class="code">60000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">asynch.batch.queue.size</div>
<div class="description req-true">
    Default queue size used by <span class="code">Async</span> mode.<br>
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="jdbc_request">19.23 JDBC Request configuration<a class="sectionlink" href="#jdbc_request" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jdbcsampler.nullmarker</div>
<div class="description req-true">
    String used to indicate a null value.<br>
    Defaults to: <span class="code">]NULL[</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jdbcsampler.max_retain_result_size</div>
<div class="description req-true">
    Max bytes to store from a <span class="code">CLOB</span> or <span class="code">BLOB</span> in the sampler.<br>
    Defaults to: <span class="code">65536</span> (bytes)
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jdbc.config.check.query</div>
<div class="description req-true">
    List of queries used to determine if the database is still responding.<br>
    Defaults to: <pre class="source">select 1 from INFORMATION_SCHEMA.SYSTEM_USERS|select 1 from dual|select 1 from sysibm.sysdummy1|select 1|select 1 from rdb$database</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jdbc.config.jdbc.driver.class</div>
<div class="description req-true">
    List of JDBC driver class name<br>
    Defaults to: <pre class="source">com.mysql.jdbc.Driver|org.postgresql.Driver|oracle.jdbc.OracleDriver|com.ingres.jdbc.IngresDriver|com.microsoft.sqlserver.jdbc.SQLServerDriver|com.microsoft.jdbc.sqlserver.SQLServerDriver|org.apache.derby.jdbc.ClientDriver|org.hsqldb.jdbc.JDBCDriver|com.ibm.db2.jcc.DB2Driver|org.apache.derby.jdbc.ClientDriver|org.h2.Driver|org.firebirdsql.jdbc.FBDriver|org.mariadb.jdbc.Driver|org.sqlite.JDBC|net.sourceforge.jtds.jdbc.Driver|com.exasol.jdbc.EXADriver</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="os_sampler">19.24 OS Process Sampler configuration<a class="sectionlink" href="#os_sampler" title="Link to here">&para;</a>
</h1>

</div>
<div class="section">
<h1 id="tcp_sampler">19.25 TCP Sampler configuration<a class="sectionlink" href="#tcp_sampler" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">tcp.handler</div>
<div class="description req-true">
    The default handler class.<br>
    Defaults to: <span class="code">TCPClientImpl</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.eolByte</div>
<div class="description req-true">
    Set this to a value outside the range <span class="code">-128</span> to <span class="code">+127</span> to skip
    <span class="code"><abbr title="end of line">eol</abbr></span> checking.<br>
    Defaults to byte value for end of line: <span class="code">1000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.charset</div>
<div class="description req-true">
    TCP Charset, used by <span class="code">org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl</span>.<br>
    Defaults to platforms default charset as returned by <span class="code">Charset.defaultCharset().name()</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.status.prefix</div>
<div class="description req-true">
    String at the beginning of the status response code.<br>
    Defaults to: <span class="code">Status</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.status.suffix</div>
<div class="description req-true">
    String at the end of the status response code.<br>
    defaults to: <span class="code">.</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.status.properties</div>
<div class="description req-true">
    Property file to convert codes to messages.<br>
    Defaults to: <span class="code">mytestfiles/tcpstatus.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">tcp.binarylength.prefix.length</div>
<div class="description req-true">
    The length prefix used by <span class="code">LengthPrefixedBinaryTCPClientImpl</span> implementation (in bytes).<br>
    Defaults to: <span class="code">2</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="summariser">19.26 Summariser - Generate Summary Results - configuration (mainly applies to CLI mode)<a class="sectionlink" href="#summariser" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">summariser.name</div>
<div class="description req-true">
    Comment the following property to disable the default CLI mode summariser.<br>
    [or change the value to rename it]<br>
    
<div class="clear"></div>
<div class="note">Applies to CLI mode only</div>
<div class="clear"></div>
    Defaults to: <span class="code">summary</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">summariser.interval</div>
<div class="description req-true">
    Interval between summaries (in seconds).<br>
    Defaults to: <span class="code">30</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">summariser.log</div>
<div class="description req-true">
    Write messages to log file.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">summariser.out</div>
<div class="description req-true">
    Write messages to <span class="code">System.out</span>.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">summariser.ignore_transaction_controller_sample_result</div>
<div class="description req-true">
    Ignore SampleResults generated by TransactionControllers.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="aggregate_report_graph">19.27 Aggregate Report and Aggregate Graph - configuration<a class="sectionlink" href="#aggregate_report_graph" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">aggregate_rpt_pct1</div>
<div class="description req-true">
    Percentiles to display in reports.<br>
    Given as a float value between <span class="code">0</span> and <span class="code">100</span> (means percent).<br>
    First percentile to display.<br>
    Defaults to: <span class="code">90</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">aggregate_rpt_pct2</div>
<div class="description req-true">
    Second percentile to display.<br>
    Given as a float value between <span class="code">0</span> and <span class="code">100</span> (means percent).<br>
    Defaults to: <span class="code">95</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">aggregate_rpt_pct3</div>
<div class="description req-true">
    Second percentile to display.<br>
    Given as a float value between <span class="code">0</span> and <span class="code">100</span> (means percent).<br>
    Defaults to: <span class="code">99</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="backend">19.28 BackendListener - configuration<a class="sectionlink" href="#backend" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">backend_graphite.send_interval</div>
<div class="description req-true">
    Send interval in seconds.<br>
    Defaults to: <span class="code">1</span> second
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_influxdb.send_interval</div>
<div class="description req-true">
    Send interval in seconds.<br>
    Defaults to: <span class="code">5</span> seconds
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_influxdb.connection_timeout</div>
<div class="description req-true">
    InfluxDB connection timeout.<br>
    Defaults to: <span class="code">1000</span> millis
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_influxdb.socket_timeout</div>
<div class="description req-true">
    InfluxDB socket read timeout.<br>
    Defaults to: <span class="code">3000</span> millis
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_influxdb.connection_request_timeout</div>
<div class="description req-true">
    InfluxDB timeout to get a connection.<br>
    Defaults to: <span class="code">100</span> millis
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_metrics_window</div>
<div class="description req-true">
    Backend metrics sliding window size for <span class="code">Percentiles</span>, <span class="code">Min</span>
    and <span class="code">Max</span>.<br>
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">backend_metrics_large_window</div>
<div class="description req-true">
    Backend metrics sliding window size  for <span class="code">Percentiles</span>, <span class="code">Min</span>
    and <span class="code">Max</span>. when <span class="code">backend_metrics_window_mode=timed</span>
<br>
    Setting this value too high can lead to OOM Backend metrics sliding window size
    Defaults to: <span class="code">5000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>


<div class="property">
<div class="name req-true">backend_metrics_window_mode</div>
<div class="description req-true">
    Backend metrics window mode.
    Possible values:
    <ul>
        
<li>
<span class="code">fixed</span> : fixed-size window</li>
        
<li>
<span class="code">timed</span> : time boxed</li>
    
</ul>
    Defaults to: <span class="code">fixed</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="beanshell">19.29 BeanShell configuration<a class="sectionlink" href="#beanshell" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">beanshell.server.port</div>
<div class="description req-true">
    BeanShell Server properties.<br>
    Define the port number as non-zero to start the http server on that port.<br>
    The telnet server will be started on the next port.<br>
    Defaults to: <span class="code">0</span> (i.e. don't start the server)
    <div class="clear"></div>
<div class="note">
    There is no security. Anyone who can connect to the port can issue any BeanShell commands.
    These can provide unrestricted access to the JMeter application and the host.
    <b>Do not enable the server unless the ports are protected against access, e.g. by a firewall.</b>
    
</div>
<div class="clear"></div>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.server.file</div>
<div class="description req-true">
    Define the server initialisation file.<br>
    Defaults to: <span class="code">../extras/startup.bsh</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.init.file</div>
<div class="description req-true">
    Define a file to be processed at startup.<br>
    This is processed using its own interpreter.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.sampler.init</div>
<div class="description req-true">
    Define the initialisation files for BeanShell Sampler, Function and
    other BeanShell elements.<br>
    
<div class="clear"></div>
<div class="note">N.B. Beanshell test elements do not share interpreters.
    Each element in each thread has its own interpreter.
    This is retained between samples.</div>
<div class="clear"></div>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.function.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.assertion.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.listener.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.postprocessor.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.preprocessor.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">beanshell.timer.init</div>
<div class="description req-true">
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>
    
<p>
    The file <span class="code">BeanShellListeners.bshrc</span> contains sample definitions
    of Test and Thread Listeners.<br>
    
</p>

</div>
<div class="section">
<h1 id="mailer">19.30 MailerModel configuration<a class="sectionlink" href="#mailer" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">mailer.successlimit</div>
<div class="description req-true">
    Number of successful samples before a message is sent.<br>
    Defaults to: <span class="code">2</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">mailer.failurelimit</div>
<div class="description req-true">
    Number of failed samples before a message is sent.<br>
    Defaults to: <span class="code">2</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="csv">19.31 CSVRead configuration<a class="sectionlink" href="#csv" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">csvread.delimiter</div>
<div class="description req-true">
    CSVRead delimiter setting (default "<span class="code">,</span>").<br>
    
<div class="clear"></div>
<div class="note">Make sure that there are no trailing spaces or tabs after the delimiter
    characters, or these will be included in the list of valid delimiters.</div>
<div class="clear"></div>
    Defaults to: <span class="code">,</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="time">19.32 __time() function configuration<a class="sectionlink" href="#time" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">time.YMD</div>
<div class="description req-true">
    This and the following properties can be used to redefine the default time formats.<br>
    Defaults to: <span class="code">yyyyMMdd</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">time.HMS</div>
<div class="description req-true">
    Defaults to: <span class="code">HHmmss</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">time.YMDHMS</div>
<div class="description req-true">
    Defaults to: <span class="code">yyyyMMdd-HHmmss</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">time.USER1</div>
<div class="description req-true">
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">time.USER2</div>
<div class="description req-true">
    Defaults to empty value
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="csv_dataset">19.33 CSV DataSet configuration<a class="sectionlink" href="#csv_dataset" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">csvdataset.eofstring</div>
<div class="description req-true">
    String to return at <abbr title="end of file"><span class="code">EOF</span></abbr> (if recycle not used).<br>
    Defaults to: <span class="code">&lt;EOF&gt;</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">csvdataset.file.encoding_list</div>
<div class="description req-true">
    List of file encoding values<br>
    Defaults to: <span class="code">platform default</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="ldap">19.34 LDAP Sampler configuration<a class="sectionlink" href="#ldap" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">ldapsampler.max_sorted_results</div>
<div class="description req-true">
    Maximum number of search results returned by a search that will be sorted
    to guarantee a stable ordering (if more results then this limit are returned
    then no sorting is done).<br>
    Set to zero to turn off all sorting, in which case "Equals" response assertions
    will be very likely to fail against search results.<br>
    Defaults to: <span class="code">1000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">assertion.equals_section_diff_len</div>
<div class="description req-true">
    Number of characters to log for each of three sections (starting matching section,
    diff section, ending matching section where not all sections will appear for all diffs)
    diff display when an Equals assertion fails. So a value of <span class="code">100</span> means a
    maximum of <span class="code">300</span> characters of diff text will be displayed (plus a number
    of extra characters like "<span class="code">...</span>" and "<span class="code">[[[</span>"/"<span class="code">]]]</span>"
    which are used to decorate it).<br>
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">assertion.equals_diff_delta_start</div>
<div class="description req-true">
    Test written out to log to signify start/end of diff delta.<br>
    Defaults to: <span class="code">[[[</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">assertion.equals_diff_delta_end</div>
<div class="description req-true">
    Defaults to: <span class="code">]]]</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="miscellaneous">19.35 Miscellaneous configuration<a class="sectionlink" href="#miscellaneous" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">cssselector.parser.cache.size</div>
<div class="description req-true">
    Size of cache used by <span class="code">CSS Selector Extractor</span> (for JODD implementation only) to store parsed CSS Selector expressions.<br>
    Defaults to: <span class="code">400</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">resultcollector.action_if_file_exists</div>
<div class="description req-true">
    Used to control what happens when you start a test and have listeners that could overwrite existing result files.<br>
    Possible values:
    <ul>
    
<li>
<span class="code">ASK</span> : Ask user</li>
    
<li>
<span class="code">APPEND</span> : Append results to existing file</li>
    
<li>
<span class="code">DELETE</span> : Delete existing file and start a new file</li>
    
</ul>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">mirror.server.port</div>
<div class="description req-true">
    If defined and greater then zero, then start the mirror server on the port.<br>
    Defaults to: <span class="code">0</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">oro.patterncache.size</div>
<div class="description req-true">
    ORO PatternCacheLRU size.<br>
    Defaults to: <span class="code">1000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">propertyEditorSearchPath</div>
<div class="description req-true">
    TestBeanGui<br>
    Defaults to: <span class="code">null</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.expertMode</div>
<div class="description req-true">
    Turn expert mode on/off: expert mode will show expert-mode beans and properties.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.max_bytes_to_store_per_request</div>
<div class="description req-true">
    Max size of bytes stored in memory per <span class="code">SampleResult</span>. Ensure that you
    don't exceed the maximum capacity of a Java Array and remember that the higher you
    set this value, the more memory JMeter will consume.<br>
    Defaults to: <span class="code">0</span> bytes which means no truncation will occur
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.max_buffer_size</div>
<div class="description req-true">
    Max size of buffer in bytes used when reading responses.<br>
    Defaults to: <span class="code">66560</span> bytes
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.max_redirects</div>
<div class="description req-true">
    Maximum redirects to follow in a single sequence.<br>
    Defaults to: <span class="code">20</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.max_frame_depth</div>
<div class="description req-true">
    Maximum frame/iframe nesting depth.<br>
    defaults to: <span class="code">5</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.separate.container</div>
<div class="description req-true">
    Revert to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> behaviour (no separate container for embedded resources)
    by setting the following <span class="code">false</span>.<br>
    defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.ignore_failed_embedded_resources</div>
<div class="description req-true">
    If embedded resources download fails due to missing resources or other reasons,
    if this property is <span class="code">true</span>, Parent sample will not be marked as failed.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.parallel_download_thread_keepalive_inseconds</div>
<div class="description req-true">
    Keep-alive time for the parallel download threads (in seconds).<br>
    Defaults to: <span class="code">60</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.embedded_resources_use_md5</div>
<div class="description req-true">
    Don't keep the embedded resources response data; just keep the size and the MD5 sum.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">httpsampler.user_defined_methods</div>
<div class="description req-true">
    List of extra HTTP methods that should be available in select box.<br>
    Defaults to:
    <pre class="source">VERSION-CONTROL,REPORT,CHECKOUT,CHECKIN,UNCHECKOUT,MKWORKSPACE,UPDATE,LABEL,MERGE,BASELINE-CONTROL,MKACTIVITY</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">sampleresult.default.encoding</div>
<div class="description req-true">
    The encoding to be used if none is provided.<br>
    Defaults to: <span class="code">ISO-8859-1</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">CookieManager.delete_null_cookies</div>
<div class="description req-true">
    CookieManager behaviour - should cookies with null/empty values be deleted?<br>
    Use <span class="code">false</span> to revert to original behaviour.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">CookieManager.allow_variable_cookies</div>
<div class="description req-true">
    CookieManager behaviour - should variable cookies be allowed?<br>
    Use <span class="code">false</span> to revert to original behaviour.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">CookieManager.save.cookies</div>
<div class="description req-true">
    CookieManager behaviour - should Cookies be stored as variables?<br>
    Default to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">CookieManager.name.prefix</div>
<div class="description req-true">
    CookieManager behaviour - prefix to add to cookie name before storing it as a variable.<br>
    Default is COOKIE_; to remove the prefix, define it as one or more spaces.<br>
    Defaults to: <span class="code">COOKIE_</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">CookieManager.check.cookies</div>
<div class="description req-true">
    CookieManager behaviour - check received cookies are valid before storing them?<br>
    Use <span class="code">false</span> to revert to previous behaviour.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">cookies</div>
<div class="description req-true">
    Netscape HTTP Cookie file.<br>
    Defaults to: <span class="code">cookies</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">javascript.use_rhino</div>
<div class="description req-true">
    Ability to switch to Rhino as default Javascript Engine used by <span class="code">IfController</span>
    and <span class="code"><a href="../usermanual/functions.html#__javaScript">__javaScript</a></span> function.<br>
    
<div class="clear"></div>
<div class="note">JMeter uses Nashorn since 3.2 version.
    If you want to use Rhino, set this value to <span class="code">true</span>
</div>
<div class="clear"></div>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.threadstop.wait</div>
<div class="description req-true">
    Number of milliseconds to wait for a thread to stop.<br>
    Defaults to: <span class="code">5000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.remote.system.exit</div>
<div class="description req-true">
    Whether to invoke <span class="code">System.exit(0)</span> in server exit code after
    stopping RMI.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.stopfail.system.exit</div>
<div class="description req-true">
    Whether to call <span class="code">System.exit(1)</span> on failure to stop threads in CLI mode.<br>
    This only takes effect if the test was explicitly requested to stop.<br>
    If this is disabled, it may be necessary to kill the JVM externally.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.force.system.exit</div>
<div class="description req-true">
    Whether to force call <span class="code">System.exit(0)</span> at end of test in CLI mode,
    even if there were no failures and the test was not explicitly asked to stop.<br>
    Without this, the JVM may never exit if there are other threads spawned by
    the test which never exit.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.exit.check.pause</div>
<div class="description req-true">
    How long to pause (in ms) in the daemon thread before reporting that the JVM has
    failed to exit.<br>
    If the value is less than zero, the JMeter does not start the daemon thread<br>
    Defaults to: <span class="code">2000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.nongui.port</div>
<div class="description req-true">
    If running CLI mode, then JMeter listens on the following port for a shutdown message.<br>
    To disable, set the port to <span class="code">1000</span> or less.<br>
    Defaults to: <span class="code">4445</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterengine.nongui.maxport</div>
<div class="description req-true">
    If the initial port is busy, keep trying until this port is reached
    (to disable searching, set the value less than or equal to the <span class="code">.port</span> property).<br>
    Defaults to: <span class="code">4455</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeterthread.rampup.granularity</div>
<div class="description req-true">
    How often to check for shutdown during ramp-up (milliseconds).<br>
    Defaults to: <span class="code">1000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">onload.expandtree</div>
<div class="description req-true">
    Should JMeter expand the tree when loading a test plan?<br>
    Default value is <span class="code">false</span> since JMeter 2.7<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.wrapstyleword</div>
<div class="description req-true">
    JSyntaxTextArea configuration.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.linewrap</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.codefolding</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.maxundos</div>
<div class="description req-true">
    Set to zero to disable undo feature in JSyntaxTextArea.<br>
    Defaults to: <span class="code">50</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.font.family</div>
<div class="description req-true">
    Change the font on the (JSyntax) Text Areas. (Useful for HiDPI screens).<br>
    Defaults to empty value, which means platform default monospaced font
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jsyntaxtextarea.font.size</div>
<div class="description req-true">
    Change the size of the (JSyntax) Text Areas. Will be used only,
    when <span class="code">jsyntaxtextarea.font.family</span> is set.<br>
    Defaults to: <span class="code">-1</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">loggerpanel.usejsyntaxtext</div>
<div class="description req-true">
    Set this to <span class="code">false</span> to disable the use of JSyntaxTextArea
    for the Console Logger panel.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">view.results.tree.max_results</div>
<div class="description req-true">
    Maximum number of main samples, that should be stored and displayed.<br>
    A value of <span class="code">0</span> will store all results. This might consume a lot of memory.<br>
    Defaults to: <span class="code">500</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">view.results.tree.max_size</div>
<div class="description req-true">
    Maximum size (in bytes) of HTML page that can be displayed.<br>
    Set to zero to disable the size check and display the whole response.<br>
    Defaults to: <span class="code">10485760</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">view.results.tree.renderers_order</div>
<div class="description req-true">
    Order of Renderers in View Results Tree.<br>
    
<div class="clear"></div>
<div class="note">Note full class names should be used for non JMeter core renderers</div>
<div class="clear"></div>
    For JMeter core renderers, class names start with <span class="code">.</span> and are automatically
    prefixed with <span class="code">org.apache.jmeter.visualizers</span>
<br>
    Defaults to:
    <pre class="source">.RenderAsText,.RenderAsRegexp,.RenderAsCssJQuery,.RenderAsXPath,.RenderAsHTML,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsJSON,.RenderAsXML</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">document.max_size</div>
<div class="description req-true">
    Maximum size (in bytes) of Document that can be parsed by Tika engine<br>
    Set to zero to disable the size check.<br>
    Defaults to: <span class="code">10485760</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">JMSSampler.useSecurity.properties</div>
<div class="description req-true">
    JMS options.<br>
    Enable the following property to stop JMS Point-to-Point Sampler from using
    the properties <span class="code">java.naming.security.[principal|credentials]</span> when
    creating the queue connection.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">confirm.delete.skip</div>
<div class="description req-true">
    Set the following value to <span class="code">true</span> in order to skip the delete
    confirmation dialogue.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="classpath">19.36 Classpath configuration<a class="sectionlink" href="#classpath" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">search_paths</div>
<div class="description req-true">
    List of directories (separated by <span class="code">;</span>) to search for additional
    JMeter plugin classes, for example new GUI elements and samplers.<br>
    Any jar file in such a directory will be automatically included; jar files in sub directories are ignored.<br>
    The given value is in addition to any jars found in the <span class="code">lib/ext</span> directory.<br>
    Do not use this for utility or plugin dependency jars.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">user.classpath</div>
<div class="description req-true">
    List of directories that JMeter will search for utility and plugin dependency classes.<br>
    Use your platform path separator (<span class="code">java.io.File.pathSeparatorChar</span> in Java) to separate multiple paths.<br>
    Any jar file in such a directory will be automatically included; jar files in sub directories are ignored.<br>
    The given value is in addition to any jars found in the <span class="code">lib</span> directory.<br>
    All entries will be added to the class path of the system class loader and also to the path
    of the JMeter internal loader.<br>
    Paths with spaces may cause problems for the JVM.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">plugin_dependency_paths</div>
<div class="description req-true">
    List of directories (separated by <span class="code">;</span>) that JMeter will search for utility
    and plugin dependency classes.<br>
    Any jar file in such a directory will be automatically included; jar files in sub directories are ignored.<br>
    The given value is in addition to any jars found in the <span class="code">lib</span> directory
    or given by the <span class="code">user.classpath</span> property.<br>
    All entries will be added to the path of the JMeter internal loader only.<br>
    For plugin dependencies this property should be used instead of <span class="code">user.classpath</span>.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">classfinder.functions.contain</div>
<div class="description req-true">
    The classpath finder currently needs to load every single JMeter class to find the classes it needs.<br>
    For CLI mode, it's only necessary to scan for Function classes, but all classes are still loaded.<br>
    All current Function classes include "<span class="code">.function.</span>" in their name, and none include
    "<span class="code">.gui.</span>" in the name, so the number of unwanted classes loaded can be reduced by
    checking for these. However, if a valid function class name does not match these restrictions,
    it will not be loaded. If problems are encountered, then comment or change this or the following property.<br>
    Defaults to: <span class="code">.functions.</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">classfinder.functions.notContain</div>
<div class="description req-true">
    Defaults to: <span class="code">.gui.</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="reporting">19.37 Reporting configuration<a class="sectionlink" href="#reporting" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.apdex_satisfied_threshold</div>
<div class="description req-true">
    Sets the satisfaction threshold for the APDEX calculation (in milliseconds).<br>
    Defaults to: <span class="code">500</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.apdex_tolerated_threshold</div>
<div class="description req-true">
    Sets the tolerance threshold for the APDEX calculation (in milliseconds).<br>
    Defaults to: <span class="code">1500</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.sample_filter</div>
<div class="description req-true">
    Regular Expression which Indicates which samples to keep for graphs and statistics generation.<br>
    Empty value means no filtering<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.temp_dir</div>
<div class="description req-true">
    Sets the temporary directory used by the generation process if it needs file I/O operations.<br>
    Defaults to: <span class="code">temp</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.statistic_window</div>
<div class="description req-true">
    Sets the size of the sliding window used by percentile evaluation.<br>
    
<div class="clear"></div>
<div class="note">Caution: higher value provides a better accuracy but needs more memory.</div>
<div class="clear"></div>
    Defaults to: <span class="code">20000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.report_title</div>
<div class="description req-true">
    Configure this property to change the report title<br>
    Defaults to: <span class="code">Apache JMeter Dashboard</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.overall_granularity</div>
<div class="description req-true">
    Defines the overall granularity for over time graphs<br>
    Defaults to: <span class="code">60000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimePercentiles.classname</div>
<div class="description req-true">
    Response Time Percentiles graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.ResponseTimePercentilesGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimePercentiles.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Response Time Percentiles</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeDistribution.classname</div>
<div class="description req-true">
    Response Time Distribution graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.ResponseTimeDistributionGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeDistribution.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Response Time Distribution</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.activeThreadsOverTime.classname</div>
<div class="description req-true">
    Active Threads Over Time graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.ActiveThreadsGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.activeThreadsOverTime.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Active Threads Over Time</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.activeThreadsOverTime.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.timeVsThreads.classname</div>
<div class="description req-true">
    Time VS Threads graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.TimeVSThreadGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.timeVsThreads.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Time VS Threads</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.bytesThroughputOverTime.classname</div>
<div class="description req-true">
    Bytes Throughput Over Time graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.BytesThroughputGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.bytesThroughputOverTime.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Bytes Throughput Over Time</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.bytesThroughputOverTime.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimesOverTime.classname</div>
<div class="description req-true">
    Response Time Over Time graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.ResponseTimeOverTimeGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimesOverTime.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Response Time Over Time</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimesOverTime.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latenciesOverTime.classname</div>
<div class="description req-true">
    Latencies Over Time graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.LatencyOverTimeGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latenciesOverTime.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Latencies Over Time</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latenciesOverTime.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeVsRequest.classname</div>
<div class="description req-true">
    Response Time Vs Request graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.ResponseTimeVSRequestGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeVsRequest.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Response Time Vs Request</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeVsRequest.exclude_controllers</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.responseTimeVsRequest.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latencyVsRequest.classname</div>
<div class="description req-true">
    Latencies Vs Request graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.LatencyVSRequestGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latencyVsRequest.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Latencies Vs Request</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latencyVsRequest.exclude_controllers</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.latencyVsRequest.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.hitsPerSecond.classname</div>
<div class="description req-true">
    Hits Per Second graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.HitsPerSecondGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.hitsPerSecond.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Hits Per Second</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.hitsPerSecond.exclude_controllers</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.hitsPerSecond.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.codesPerSecond.classname</div>
<div class="description req-true">
    Codes Per Second graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.CodesPerSecondGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.codesPerSecond.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Codes Per Second</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.codesPerSecond.exclude_controllers</div>
<div class="description req-true">
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.codesPerSecond.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.transactionsPerSecond.classname</div>
<div class="description req-true">
    Transactions Per Second graph definition<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.processor.graph.impl.TransactionsPerSecondGraphConsumer</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.transactionsPerSecond.title</div>
<div class="description req-true">
    Defaults to: <span class="code">Transactions Per Second</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.graph.transactionsPerSecond.property.set_granularity</div>
<div class="description req-true">
    Defaults to: <span class="code">${jmeter.reportgenerator.overall_granularity}</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.classname</div>
<div class="description req-true">
    HTML Export<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.report.dashboard.HtmlTemplateExporter</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.property.template_dir</div>
<div class="description req-true">
    Sets the source directory of templated files from which the html pages are generated.<br>
    Defaults to: <span class="code">report-template</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.property.output_dir</div>
<div class="description req-true">
    Sets the destination directory for generated html pages.<br>
    This will be overridden by the command line option <span class="code">-o</span>.<br>
    Defaults to: <span class="code">report-output</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.series_filter</div>
<div class="description req-true">
    Regular Expression which Indicates which graph series are filtered in display.<br>
    Empty value means no filtering.<br>
    Defaults to empty value.
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.filters_only_sample_series</div>
<div class="description req-true">
    Indicates whether series filter apply only on sample series<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.exporter.html.show_controllers_only</div>
<div class="description req-true">
    Indicates whether only controller samples are displayed on graphs that support it.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.date_format</div>
<div class="description req-true">
    Date format of report using by start_date and end_date properties.<br>
    Defaults to: <span class="code">yyyyMMddHHmmss</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.start_date</div>
<div class="description req-true">
    Start date of report using date_format property.<br>
    Defaults to: nothing
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">jmeter.reportgenerator.end_date</div>
<div class="description req-true">
    End date of report using date_format property.<br>
    Defaults to: nothing
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">generate_report_ui.generation_timeout</div>
<div class="description req-true">
    Timeout in milliseconds for Report generation when using Tools &gt; Generate HTML report.<br>
    Defaults to: 300000
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="properties">19.38 Additional property files to load<a class="sectionlink" href="#properties" title="Link to here">&para;</a>
</h1>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">user.properties</div>
<div class="description req-true">
    Should JMeter automatically load additional JMeter properties?<br>
    File name to look for (comment to disable)<br>
    Defaults to: <span class="code">user.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">system.properties</div>
<div class="description req-true">
    Should JMeter automatically load additional system properties?<br>
    File name to look for (comment to disable)<br>
    Defaults to: <span class="code">system.properties</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">template.files</div>
<div class="description req-true">
    Comma separated list of files that contain reference to templates and their description.<br>
    Path must be relative to JMeter root folder<br>
    Defaults to: <span class="code">/bin/templates/templates.xml</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="validation">19.39 Thread Group Validation feature<a class="sectionlink" href="#validation" title="Link to here">&para;</a>
</h1>

<div class="description">Validation is the name of the feature used to rapidly validate a Thread Group runs fine</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.tree_cloner_class</div>
<div class="description req-true">
    Default implementation is <pre class="source">org.apache.jmeter.gui.action.validation.TreeClonerForValidation</pre>
    It runs validation without timers, with one thread and one iteration.<br>
    You can implement your own policy that must extend <span class="code">org.apache.jmeter.engine.TreeCloner</span>.<br>
    JMeter will instantiate it and use it to create the Tree used to run validation on Thread Group.<br>
    Defaults to:
    <pre class="source">org.apache.jmeter.gui.action.validation.TreeClonerForValidation</pre>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.nb_threads_per_thread_group</div>
<div class="description req-true">
    Number of threads to use to validate a Thread Group.<br>
    Defaults to: <span class="code">1</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.ignore_timers</div>
<div class="description req-true">
    Ignore timers when validating the thread group of plan.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.ignore_backends</div>
<div class="description req-true">
    Ignore BackendListener when validating the thread group of plan.<br>
    Defaults to: <span class="code">true</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.number_iterations</div>
<div class="description req-true">
    Number of iterations to use to validate a Thread Group.<br>
    Defaults to: <span class="code">1</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">testplan_validation.tpc_force_100_pct</div>
<div class="description req-true">
    Force throughput controllers that work in percentage mode to be a 100%.<br>
    Defaults to: <span class="code">false</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="timer">19.40 Timer related feature<a class="sectionlink" href="#timer" title="Link to here">&para;</a>
</h1>

<div class="description">Timer are used to introduce think time in your plan.</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">timer.factor</div>
<div class="description req-true">
    Apply a factor on computed pauses by the following Timers:
    <ul>
        
<li>Gaussian Random Timer</li>
        
<li>Uniform Random Timer</li>
        
<li>Poisson Random Timer</li>
    
</ul>
    Defaults to: <span class="code">1.0f</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">think_time_creator.impl</div>
<div class="description req-true">
    Default implementation that create the Timer structure to add to Test Plan.
    Implementation of interface <a href="../api/org/apache/jmeter/gui/action/thinktime/ThinkTimeCreator.html">org.apache.jmeter.gui.action.thinktime.ThinkTimeCreator</a>
    Defaults to: <a href="../api/org/apache/jmeter/thinktime/DefaultThinkTimeCreator.html">org.apache.jmeter.thinktime.DefaultThinkTimeCreator</a>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">think_time_creator.default_timer_implementation</div>
<div class="description req-true">
    Default Timer GUI class added to Test Plan by DefaultThinkTimeCreator
    Defaults to: <a href="../api/org/apache/jmeter/timers/gui/UniformRandomTimerGui.html">org.apache.jmeter.timers.gui.UniformRandomTimerGui</a>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">think_time_creator.default_constant_pause</div>
<div class="description req-true">
    Default constant pause of Timer
    Defaults to: <span class="code">1000</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">think_time_creator.default_range</div>
<div class="description req-true">
    Default range pause of Timer
    Defaults to: <span class="code">100</span>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

<a href="#">^</a>

</div>
<div class="section">
<h1 id="naming_policy">19.41 Naming Policy<a class="sectionlink" href="#naming_policy" title="Link to here">&para;</a>
</h1>

<div class="description">Timer are used to introduce think time in your plan.</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>

<div class="property">
<div class="name req-true">naming_policy.prefix</div>
<div class="description req-true">
    Prefix used when naming elements.
    Defaults to empty prefix
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">naming_policy.suffix</div>
<div class="description req-true">
    Prefix used when naming elements.
    Defaults to empty suffix
</div>
<div class="required req-true">
            No
          </div>
</div>

<div class="property">
<div class="name req-true">naming_policy.impl</div>
<div class="description req-true">
    Implementation of interface <a href="../api/org/apache/jmeter/gui/action/TreeNodeNamingPolicy.html">org.apache.jmeter.gui.action.TreeNodeNamingPolicy</a>
    Default implementation that create the Timer structure to add to Test Plan.
    Implementation of interface org.apache.jmeter.gui.action.thinktime.ThinkTimeCreator
    Defaults to: <a href="../api/org/apache/jmeter/gui/action/impl/DefaultTreeNodeNamingPolicy.html">org.apache.jmeter.gui.action.impl.DefaultTreeNodeNamingPolicy</a>

</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

<a href="#">^</a>

</div>
<div class="section">
<h1 id="help">19.42 Help<a class="sectionlink" href="#help" title="Link to here">&para;</a>
</h1>

<div class="description">Controls how documentation in JMeter is displayed</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">help.local</div>
<div class="description req-true">
    Switch that allows using Local documentation opened in JMeter GUI.<br>
    By default we use Online documentation opened in Browser.
    Defaults to <span class="code">false</span>
    
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="groovy">19.43 Advanced Groovy Scripting configuration<a class="sectionlink" href="#groovy" title="Link to here">&para;</a>
</h1>

<div class="description">Advanced properties for configuration of scripting in Groovy</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">groovy.utilities</div>
<div class="description req-true">
    Path to Groovy file containing utility functions to make available to <span class="code"><a href="../usermanual/functions.html#__groovy">__groovy</a></span> function.<br>
    Defaults to <span class="code">bin/utility.groovy</span>
    
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="jsr223">19.44 Advanced JSR-223 Scripting configuration<a class="sectionlink" href="#jsr223" title="Link to here">&para;</a>
</h1>

<div class="description">Advanced properties for configuration of scripting in JSR-223</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">jsr223.init.file</div>
<div class="description req-true">
    
<p>Path to JSR-223 file containing script to call on JMeter startup.</p>
    
<p>The actual scripting engine to use will be determined by the extension
    of the init file name. If the file name has no extension, or no scripting
    engine could be found for that extension, Groovy will be used.</p>
    
<p>This script can use pre-defined variables:</p>
    
<ul>
        
<li>
<span class="code">log</span>: Logger to log any message, uses SLF4J library</li>
        
<li>
<span class="code">props</span>: JMeter Properties</li>
        
<li>
<span class="code">OUT</span>: System.OUT, useful to write in the console</li>
    
</ul>
    No script is defined by default.
    </div>
<div class="required req-true">
            No
          </div>
</div>
    
<div class="property">
<div class="name req-true">jsr223.compiled_scripts_cache_size</div>
<div class="description req-true">
    Used by JSR-223 elements.<br>
    Size of compiled scripts cache.<br>
    Defaults to: <span class="code">100</span>
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="docgeneration">19.45 Documentation generation<a class="sectionlink" href="#docgeneration" title="Link to here">&para;</a>
</h1>

<div class="description">Advanced properties for documentation generation</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">docgeneration.schematic_xsl</div>
<div class="description req-true">
    Path to XSL file used to generate Schematic View of Test Plan.<br>
    When empty, JMeter will use the embedded one in src/core/org/apache/jmeter/gui/action/schematic.xsl<br>
    No default value</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<div class="section">
<h1 id="securityprovider">19.46 Security Provider<a class="sectionlink" href="#securityprovider" title="Link to here">&para;</a>
</h1>

<div class="description">Advanced properties for documentation generation</div>

<div class="properties">
<h3>
        Parameters
        </h3>
<div class="property title">
<div class="name title">Attribute</div>
<div class="description title">Description</div>
<div class="required title">Required</div>
</div>
    
<div class="property">
<div class="name req-true">security.provider</div>
<div class="description req-true">
        The value must be in this format: &lt;ClassName&gt;[:&lt;Postion&gt;[:&lt;ConfigString&gt;]]</div>
<div class="required req-true">
            No
          </div>
</div>.
        Examples:<br>
        
<dl>
            
<dt>org.bouncycastle.jce.provider.BouncyCastleProvider</dt>
            
<dd>Adds the <span class="code">BouncyCastleProvider</span> to the next position available.</dd>
            
<dt>org.bouncycastle.jce.provider.BouncyCastleProvider:1</dt>
            
<dd>Adds the <span class="code">BouncyCastleProvider</span>, at the first position.</dd>
            
<dt>org.bouncycastle.jsse.provider.BouncyCastleJsseProvider:2:BC</dt>
            
<dd>Adds the <span class="code">BouncyCastleJsseProvider</span>, at the second position. And configure it to use the
                BC provider.</dd>
        
</dl>
    
<div class="property">
<div class="name req-true">security.provider.&lt;n&gt;</div>
<div class="description req-true">
        Replace the <span class="code">&lt;n&gt;</span> with any number. The SecurityProviders will be added in the alphabetical
        order of the property names. (First: <span class="code">security.provider</span> and then <span class="code">security.provider.2</span>, <span class="code">security.provider.3</span>,...)
        See property <span class="code">security.provider</span>
        
</div>
<div class="required req-true">
            No
          </div>
</div>

</div>

</div>
<ul class="pagelinks">
<li>
<a href="component_reference.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="functions.html">Next &gt;</a>
</li>
</ul>
<div class="share-links">
      Share this page:
      <ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2020
            , Apache Software Foundation
          </div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
            feather, and the Apache JMeter logo are
            trademarks of the
            Apache Software Foundation.
          </div>
</div>
<script>(function(){
            "use strict";
            // enable 'go to top' button functionality
            document.addEventListener('scroll', function() {
                if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
                    document.getElementById("topButton").style.display = "block";
                } else {
                    document.getElementById("topButton").style.display = "none";
                }
            });
            // fill in the current location into social links on this page.
            var as = document.getElementsByTagName('a');
            var loc = document.location.href;
            if (!loc.toLowerCase().startsWith('http')) {
                return;
            }
            for (var i=0; i<as.length; i++) {
                var href = as[i].getAttribute('data-social-url');
                if (href !== null) {
                    as[i].href = href + encodeURIComponent(loc);
                }
            }
        })();</script>
</body>
</html>
