<!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 ports used by <span class="code">RemoteSampleListenerImpl</span> and <span class="code">RemoteThreadsListenerImpl</span> (The Controller)<br>
    Default value is <span class="code">0</span>, which means ports are 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;
            2021
            , 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>
