<!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="#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>
</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="toolbar_display">19.5 Toolbar display<a class="sectionlink" href="#toolbar_display" title="Link to here">&para;</a>
</h1>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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

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

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

</div>

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

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

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

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

</div>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</div>

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