Modified: jmeter/trunk/docs/usermanual/component_reference.html URL: http://svn.apache.org/viewvc/jmeter/trunk/docs/usermanual/component_reference.html?rev=1739469&r1=1739468&r2=1739469&view=diff ============================================================================== --- jmeter/trunk/docs/usermanual/component_reference.html (original) +++ jmeter/trunk/docs/usermanual/component_reference.html Sat Apr 16 14:36:00 2016 @@ -1,23 +1,12 @@ <!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: Component Reference</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="http://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css"><link rel="stylesheet" type="text/css" href="../css/new-style.css"></head><body role="document"><a href="#content" class="hidden">Main content</a><div class="header"><!-- + User's Manual: Component Reference</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="http://fonts.googleapis.com/css?family=Merriweather:400normal" 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="http://www.apache.org"><img title="Apache Software Foundation" width="290" height="75" src="../images/asf-logo.png" alt="Logo ASF"></a></div><!-- + --><div><a href="http://www.apache.org"><img title="Apache Software Foundation" class="logo" src="../images/asf-logo.svg" alt="Logo ASF"></a></div><!-- PROJECT LOGO - --><div><a href="http://jmeter.apache.org/"><img src="../images/logo.jpg" alt="Apache JMeter"></a></div><div class="twitter"><div><a href="https://twitter.com/share" class="twitter-share-button" data-text="Powerful Load Testing with Apache #JMeter" data-via="ApacheJMeter" data-lang="en-gb" data-size="large">Tweet</a><script> - (function(d,s,id){ - var js, - fjs=d.getElementsByTagName(s)[0], - p=/^http:/.test(d.location)?'http':'https'; - if (!d.getElementById(id)) { - js=d.createElement(s); - js.id=id; - js.src=p+'://platform.twitter.com/widgets.js'; - fjs.parentNode.insertBefore(js,fjs); - } - })(document, 'script', 'twitter-wjs'); - </script></div><div><a href="https://twitter.com/ApacheJMeter" class="twitter-follow-button" data-show-count="false" data-lang="en-gb" data-size="large">Follow</a><script>(function(d,s,id){ + --><div><a href="http://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a></div><div class="banner"><iframe src="http://www.apache.org/ads/bannerbar.html" style="border-width:0;" frameborder="0" scrolling="no"></iframe><div class="clear"></div></div></div><div class="nav"><div class="social menu"><div><a href="https://twitter.com/share" class="twitter-share-button" data-text="Powerful Load Testing with Apache #JMeter" data-via="ApacheJMeter" data-lang="en-gb" data-size="large">Tweet</a><script> + (function(d,s,id){ var js, fjs=d.getElementsByTagName(s)[0], p=/^http:/.test(d.location)?'http':'https'; @@ -27,12 +16,23 @@ js.src=p+'://platform.twitter.com/widgets.js'; fjs.parentNode.insertBefore(js,fjs); } - })(document, 'script', 'twitter-wjs'); - </script></div></div><div class="banner"><iframe src="http://www.apache.org/ads/bannerbar.html" style="border-width:0;" frameborder="0" scrolling="no"></iframe><div class="clear"></div></div></div><div class="nav"><ul class="menu"><li><div class="menu-title">About</div><ul><li><a href="../index.html">Overview</a></li><li><a href="http://twitter.com/ApacheJMeter">JMeter on Twitter<img src="../images/twitter.png" alt="Icon for JMeter on Twitter"></a></li><li><a href="../issues.html">Issue Tracking</a></li><li><a href="http://projects.apache.org/feeds/rss/jmeter.xml">Subscribe to What's New</a></li><li><a href="http://www.apache.org/licenses/">License</a></li></ul></li></ul><ul class="menu"><li><div class="menu-title">Download</div><ul><li><a href="../download_jmeter.cgi">Download Releases</a></li><li><a href="../nightly.html">Developer (Nightly) Builds</a></li></ul></li></ul><ul class="menu"><li><div class="menu-title">Documentation</div><ul><li><a href="../changes.html" >Changes per version</a></li><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="../api/index.html">Javadocs</a></li><li><a >href="../building.html">Building JMeter and Add-Ons</a></li><li><a >href="http://wiki.apache.org/jmeter">JMeter Wiki</a></li><li><a >href="http://wiki.apache.org/jmeter/JMeterFAQ">FAQ >(Wiki)</a></li></ul></li></ul><ul class="menu"><li><div >class="menu-title">Tutorials (PDF format)</div><ul><li><a >href="../usermanual/jmeter_distributed_testing_step_by_step.pdf">Distributed >Testing</a></li><li><a >href="../usermanual/jmeter_proxy_step_by_step.pdf">Recording >Tests</a></li><li><a href="../usermanual/junitsampler_tutorial.pdf">JUnit >Sampler</a></li><li><a href="../us ermanual/jmeter_accesslog_sampler_step_by_step.pdf">Access Log Sampler</a></li><li><a href="../extending/jmeter_tutorial.pdf">Extending JMeter</a></li></ul></li></ul><ul class="menu"><li><div class="menu-title">Community</div><ul><li><a href="http://wiki.apache.org/jmeter/JMeterCommitters">Contributors</a></li><li><a href="../mail.html">Mailing Lists</a></li><li><a href="../svnindex.html">SVN Repositories</a></li></ul></li></ul><ul class="menu"><li><div class="menu-title">Foundation</div><ul><li><a href="http://www.apache.org/">ASF</a></li><li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a></li><li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></li></ul></div><div class="main" id="content"><ul class="pagelinks"><li><a href="boss.html">< Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="functions.html">Next >< /a></li></ul><ul class="section-index"><li><a href="#introduction">18.0 Introduction</a><ul></ul></li><li><a href="#samplers">18.1 Samplers</a><ul><li><a href="#FTP_Request">FTP Request</a></li><li><a href="#HTTP_Request">HTTP Request</a></li><li><a href="#JDBC_Request">JDBC Request</a></li><li><a href="#Java_Request">Java Request</a></li><li><a href="#SOAP/XML-RPC_Request">SOAP/XML-RPC Request</a></li><li><a href="#WebService(SOAP)_Request_(DEPRECATED)">WebService(SOAP) Request (DEPRECATED)</a></li><li><a href="#LDAP_Request">LDAP Request</a></li><li><a href="#LDAP_Extended_Request">LDAP Extended Request</a></li><li><a href="#Access_Log_Sampler">Access Log Sampler</a></li><li><a href="#BeanShell_Sampler">BeanShell Sampler</a></li><li><a href="#BSF_Sampler">BSF Sampler</a></li><li><a href="#JSR223_Sampler">JSR223 Sampler</a></li><li><a href="#TCP_Sampler">TCP Sampler</a></li><li><a href="#JMS_Publisher">JMS Publisher</a></li><li><a href="#JMS_Subscriber">JMS Subscriber</a></li><li>< a href="#JMS_Point-to-Point">JMS Point-to-Point</a></li><li><a href="#JUnit_Request">JUnit Request</a></li><li><a href="#Mail_Reader_Sampler">Mail Reader Sampler</a></li><li><a href="#Test_Action">Test Action</a></li><li><a href="#SMTP_Sampler">SMTP Sampler</a></li><li><a href="#OS_Process_Sampler">OS Process Sampler</a></li><li><a href="#MongoDB_Script">MongoDB Script</a></li></ul></li><li><a href="#logic_controllers">18.2 Logic Controllers</a><ul><li><a href="#Simple_Controller">Simple Controller</a></li><li><a href="#Loop_Controller">Loop Controller</a></li><li><a href="#Once_Only_Controller">Once Only Controller</a></li><li><a href="#Interleave_Controller">Interleave Controller</a></li><li><a href="#Random_Controller">Random Controller</a></li><li><a href="#Random_Order_Controller">Random Order Controller</a></li><li><a href="#Throughput_Controller">Throughput Controller</a></li><li><a href="#Runtime_Controller">Runtime Controller</a></li><li><a href="#If_Controller">If Controll er</a></li><li><a href="#While_Controller">While Controller</a></li><li><a href="#Switch_Controller">Switch Controller</a></li><li><a href="#ForEach_Controller">ForEach Controller</a></li><li><a href="#Module_Controller">Module Controller</a></li><li><a href="#Include_Controller">Include Controller</a></li><li><a href="#Transaction_Controller">Transaction Controller</a></li><li><a href="#Recording_Controller">Recording Controller</a></li><li><a href="#Critical_Section_Controller">Critical Section Controller</a></li></ul></li><li><a href="#listeners">18.3 Listeners</a><ul><li><a href="#Sample_Result_Save_Configuration">Sample Result Save Configuration</a></li><li><a href="#Graph_Results">Graph Results</a></li><li><a href="#Spline_Visualizer">Spline Visualizer</a></li><li><a href="#Assertion_Results">Assertion Results</a></li><li><a href="#View_Results_Tree">View Results Tree</a></li><li><a href="#Aggregate_Report">Aggregate Report</a></li><li><a href="#View_Results_in_Table">View Res ults in Table</a></li><li><a href="#Simple_Data_Writer">Simple Data Writer</a></li><li><a href="#Monitor_Results">Monitor Results</a></li><li><a href="#Distribution_Graph_(alpha)">Distribution Graph (alpha)</a></li><li><a href="#Aggregate_Graph">Aggregate Graph</a></li><li><a href="#Response_Time_Graph">Response Time Graph</a></li><li><a href="#Mailer_Visualizer">Mailer Visualizer</a></li><li><a href="#BeanShell_Listener">BeanShell Listener</a></li><li><a href="#Summary_Report">Summary Report</a></li><li><a href="#Save_Responses_to_a_file">Save Responses to a file</a></li><li><a href="#BSF_Listener">BSF Listener</a></li><li><a href="#JSR223_Listener">JSR223 Listener</a></li><li><a href="#Generate_Summary_Results">Generate Summary Results</a></li><li><a href="#Comparison_Assertion_Visualizer">Comparison Assertion Visualizer</a></li><li><a href="#Backend_Listener">Backend Listener</a></li></ul></li><li><a href="#config_elements">18.4 Configuration Elements</a><ul><li><a href="#CSV_Dat a_Set_Config">CSV Data Set Config</a></li><li><a href="#FTP_Request_Defaults">FTP Request Defaults</a></li><li><a href="#DNS_Cache_Manager">DNS Cache Manager</a></li><li><a href="#HTTP_Authorization_Manager">HTTP Authorization Manager</a></li><li><a href="#HTTP_Cache_Manager">HTTP Cache Manager</a></li><li><a href="#HTTP_Cookie_Manager">HTTP Cookie Manager</a></li><li><a href="#HTTP_Request_Defaults">HTTP Request Defaults</a></li><li><a href="#HTTP_Header_Manager">HTTP Header Manager</a></li><li><a href="#Java_Request_Defaults">Java Request Defaults</a></li><li><a href="#JDBC_Connection_Configuration">JDBC Connection Configuration</a></li><li><a href="#Keystore_Configuration">Keystore Configuration</a></li><li><a href="#Login_Config_Element">Login Config Element</a></li><li><a href="#LDAP_Request_Defaults">LDAP Request Defaults</a></li><li><a href="#LDAP_Extended_Request_Defaults">LDAP Extended Request Defaults</a></li><li><a href="#TCP_Sampler_Config">TCP Sampler Config</a></li><li ><a href="#User_Defined_Variables">User Defined Variables</a></li><li><a >href="#Random_Variable">Random Variable</a></li><li><a >href="#Counter">Counter</a></li><li><a href="#Simple_Config_Element">Simple >Config Element</a></li><li><a href="#MongoDB_Source_Config">MongoDB Source >Config</a></li></ul></li><li><a href="#assertions">18.5 >Assertions</a><ul><li><a href="#Response_Assertion">Response >Assertion</a></li><li><a href="#Duration_Assertion">Duration >Assertion</a></li><li><a href="#Size_Assertion">Size Assertion</a></li><li><a >href="#XML_Assertion">XML Assertion</a></li><li><a >href="#BeanShell_Assertion">BeanShell Assertion</a></li><li><a >href="#MD5Hex_Assertion">MD5Hex Assertion</a></li><li><a >href="#HTML_Assertion">HTML Assertion</a></li><li><a >href="#XPath_Assertion">XPath Assertion</a></li><li><a >href="#XML_Schema_Assertion">XML Schema Assertion</a></li><li><a >href="#BSF_Assertion">BSF Assertion</a></li><li><a >href="#JSR223_Assertion">JSR223 Assertion</a></li><li><a href="#Com pare_Assertion">Compare Assertion</a></li><li><a href="#SMIME_Assertion">SMIME Assertion</a></li></ul></li><li><a href="#timers">18.6 Timers</a><ul><li><a href="#Constant_Timer">Constant Timer</a></li><li><a href="#Gaussian_Random_Timer">Gaussian Random Timer</a></li><li><a href="#Uniform_Random_Timer">Uniform Random Timer</a></li><li><a href="#Constant_Throughput_Timer">Constant Throughput Timer</a></li><li><a href="#Synchronizing_Timer">Synchronizing Timer</a></li><li><a href="#BeanShell_Timer">BeanShell Timer</a></li><li><a href="#BSF_Timer">BSF Timer</a></li><li><a href="#JSR223_Timer">JSR223 Timer</a></li><li><a href="#Poisson_Random_Timer">Poisson Random Timer</a></li></ul></li><li><a href="#preprocessors">18.7 Pre Processors</a><ul><li><a href="#HTML_Link_Parser">HTML Link Parser</a></li><li><a href="#HTTP_URL_Re-writing_Modifier">HTTP URL Re-writing Modifier</a></li><li><a href="#HTML_Parameter_Mask_(DEPRECATED)">HTML Parameter Mask (DEPRECATED)</a></li><li><a href="#User_Pa rameters">User Parameters</a></li><li><a href="#BeanShell_PreProcessor">BeanShell PreProcessor</a></li><li><a href="#BSF_PreProcessor">BSF PreProcessor</a></li><li><a href="#JSR223_PreProcessor">JSR223 PreProcessor</a></li><li><a href="#JDBC_PreProcessor">JDBC PreProcessor</a></li><li><a href="#RegEx_User_Parameters">RegEx User Parameters</a></li></ul></li><li><a href="#postprocessors">18.8 Post-Processors</a><ul><li><a href="#Regular_Expression_Extractor">Regular Expression Extractor</a></li><li><a href="#CSS/JQuery_Extractor">CSS/JQuery Extractor</a></li><li><a href="#XPath_Extractor">XPath Extractor</a></li><li><a href="#Result_Status_Action_Handler">Result Status Action Handler</a></li><li><a href="#BeanShell_PostProcessor">BeanShell PostProcessor</a></li><li><a href="#BSF_PostProcessor">BSF PostProcessor</a></li><li><a href="#JSR223_PostProcessor">JSR223 PostProcessor</a></li><li><a href="#JDBC_PostProcessor">JDBC PostProcessor</a></li></ul></li><li><a href="#Miscellaneous_Feat ures">18.9 Miscellaneous Features</a><ul><li><a href="#Test_Plan">Test Plan</a></li><li><a href="#Thread_Group">Thread Group</a></li><li><a href="#WorkBench">WorkBench</a></li><li><a href="#SSL_Manager">SSL Manager</a></li><li><a href="#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder + })(document, 'script', 'twitter-wjs'); + </script></div><div><a href="https://twitter.com/ApacheJMeter" class="twitter-follow-button" data-show-count="false" data-lang="en-gb" data-size="large">Follow</a><script>(function(d,s,id){ + var js, + fjs=d.getElementsByTagName(s)[0], + p=/^http:/.test(d.location)?'http':'https'; + if (!d.getElementById(id)) { + js=d.createElement(s); + js.id=id; + js.src=p+'://platform.twitter.com/widgets.js'; + fjs.parentNode.insertBefore(js,fjs); + } + })(document, 'script', 'twitter-wjs'); + </script></div><div><a href="https://github.com/apache/jmeter"><img alt="star this repo" src="http://githubbadges.com/star.svg?user=apache&repo=jmeter&style=default"></a></div><div><a href="https://github.com/apache/jmeter/fork"><img alt="fork this repo" src="http://githubbadges.com/fork.svg?user=apache&repo=jmeter&style=default"></a></div><div><a href="https://maven-badges.herokuapp.com/maven-central/org.apache.jmeter/ApacheJMeter"><img alt="Maven Central" src="https://maven-badges.herokuapp.com/maven-central/org.apache.jmeter/ApacheJMeter/badge.png"></a></div></div><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="http://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="../nightly.html">Developer (Nightly) Builds</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Documentation</div><ul><li><a href="../changes.html">Changes per version</a></li><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="../api/index.html">Javadocs</a></li><li><a href="../building.html">Building JMeter and Add-Ons</a></li><li><a href="http://wiki.apache.org/jmeter">JMeter Wiki</a></li><li><a href="http://wiki.apache.org/jmeter/JMeterFAQ">FAQ (Wiki)</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Tutorials (PDF format)</div><ul><li><a href="../usermanual/jmeter_distributed_testing_step_by_step.pdf">Distributed Testing</a ></li><li><a href="../usermanual/jmeter_proxy_step_by_step.pdf">Recording >Tests</a></li><li><a href="../usermanual/junitsampler_tutorial.pdf">JUnit >Sampler</a></li><li><a >href="../usermanual/jmeter_accesslog_sampler_step_by_step.pdf">Access Log >Sampler</a></li><li><a href="../extending/jmeter_tutorial.pdf">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="../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="http://wiki.apache.org/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="http://www.apache.org/">ASF</a></li><li><a href= "http://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a></li><li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></li></ul></div><div class="main" id="content"><ul class="pagelinks"><li><a href="boss.html">< Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="functions.html">Next ></a></li></ul><ul class="section-index"><li><a href="#introduction">19 Introduction</a><ul></ul></li><li><a href="#samplers">19.1 Samplers</a><ul><li><a href="#FTP_Request">FTP Request</a></li><li><a href="#HTTP_Request">HTTP Request</a></li><li><a href="#JDBC_Request">JDBC Request</a></li><li><a href="#Java_Request">Java Request</a></li><li><a href="#SOAP/XML-RPC_Request">SOAP/XML-RPC Request</a></li><li><a href="#LDAP_Request">LDAP Request</a></li><li><a href="#LDAP_Extended_Request">LDAP Extended Request</a></li><li><a href="#Access_Log_Sampler">Acce ss Log Sampler</a></li><li><a href="#BeanShell_Sampler">BeanShell Sampler</a></li><li><a href="#BSF_Sampler">BSF Sampler</a></li><li><a href="#JSR223_Sampler">JSR223 Sampler</a></li><li><a href="#TCP_Sampler">TCP Sampler</a></li><li><a href="#JMS_Publisher">JMS Publisher</a></li><li><a href="#JMS_Subscriber">JMS Subscriber</a></li><li><a href="#JMS_Point-to-Point">JMS Point-to-Point</a></li><li><a href="#JUnit_Request">JUnit Request</a></li><li><a href="#Mail_Reader_Sampler">Mail Reader Sampler</a></li><li><a href="#Test_Action">Test Action</a></li><li><a href="#SMTP_Sampler">SMTP Sampler</a></li><li><a href="#OS_Process_Sampler">OS Process Sampler</a></li><li><a href="#MongoDB_Script_(DEPRECATED)">MongoDB Script (DEPRECATED)</a></li></ul></li><li><a href="#logic_controllers">19.2 Logic Controllers</a><ul><li><a href="#Simple_Controller">Simple Controller</a></li><li><a href="#Loop_Controller">Loop Controller</a></li><li><a href="#Once_Only_Controller">Once Only Controller</a></li>< li><a href="#Interleave_Controller">Interleave Controller</a></li><li><a href="#Random_Controller">Random Controller</a></li><li><a href="#Random_Order_Controller">Random Order Controller</a></li><li><a href="#Throughput_Controller">Throughput Controller</a></li><li><a href="#Runtime_Controller">Runtime Controller</a></li><li><a href="#If_Controller">If Controller</a></li><li><a href="#While_Controller">While Controller</a></li><li><a href="#Switch_Controller">Switch Controller</a></li><li><a href="#ForEach_Controller">ForEach Controller</a></li><li><a href="#Module_Controller">Module Controller</a></li><li><a href="#Include_Controller">Include Controller</a></li><li><a href="#Transaction_Controller">Transaction Controller</a></li><li><a href="#Recording_Controller">Recording Controller</a></li><li><a href="#Critical_Section_Controller">Critical Section Controller</a></li></ul></li><li><a href="#listeners">19.3 Listeners</a><ul><li><a href="#Sample_Result_Save_Configuration">Sample Result Save Configuration</a></li><li><a href="#Graph_Results">Graph Results</a></li><li><a href="#Spline_Visualizer_(DEPRECATED)">Spline Visualizer (DEPRECATED)</a></li><li><a href="#Assertion_Results">Assertion Results</a></li><li><a href="#View_Results_Tree">View Results Tree</a></li><li><a href="#Aggregate_Report">Aggregate Report</a></li><li><a href="#View_Results_in_Table">View Results in Table</a></li><li><a href="#Simple_Data_Writer">Simple Data Writer</a></li><li><a href="#Monitor_Results">Monitor Results</a></li><li><a href="#Distribution_Graph_(DEPRECATED)">Distribution Graph (DEPRECATED)</a></li><li><a href="#Aggregate_Graph">Aggregate Graph</a></li><li><a href="#Response_Time_Graph">Response Time Graph</a></li><li><a href="#Mailer_Visualizer">Mailer Visualizer</a></li><li><a href="#BeanShell_Listener">BeanShell Listener</a></li><li><a href="#Summary_Report">Summary Report</a></li><li><a href="#Save_Responses_to_a_file">Save Responses to a file</a></li><li><a href="#BSF_ Listener">BSF Listener</a></li><li><a href="#JSR223_Listener">JSR223 Listener</a></li><li><a href="#Generate_Summary_Results">Generate Summary Results</a></li><li><a href="#Comparison_Assertion_Visualizer">Comparison Assertion Visualizer</a></li><li><a href="#Backend_Listener">Backend Listener</a></li></ul></li><li><a href="#config_elements">19.4 Configuration Elements</a><ul><li><a href="#CSV_Data_Set_Config">CSV Data Set Config</a></li><li><a href="#FTP_Request_Defaults">FTP Request Defaults</a></li><li><a href="#DNS_Cache_Manager">DNS Cache Manager</a></li><li><a href="#HTTP_Authorization_Manager">HTTP Authorization Manager</a></li><li><a href="#HTTP_Cache_Manager">HTTP Cache Manager</a></li><li><a href="#HTTP_Cookie_Manager">HTTP Cookie Manager</a></li><li><a href="#HTTP_Request_Defaults">HTTP Request Defaults</a></li><li><a href="#HTTP_Header_Manager">HTTP Header Manager</a></li><li><a href="#Java_Request_Defaults">Java Request Defaults</a></li><li><a href="#JDBC_Connection_Con figuration">JDBC Connection Configuration</a></li><li><a href="#Keystore_Configuration">Keystore Configuration</a></li><li><a href="#Login_Config_Element">Login Config Element</a></li><li><a href="#LDAP_Request_Defaults">LDAP Request Defaults</a></li><li><a href="#LDAP_Extended_Request_Defaults">LDAP Extended Request Defaults</a></li><li><a href="#TCP_Sampler_Config">TCP Sampler Config</a></li><li><a href="#User_Defined_Variables">User Defined Variables</a></li><li><a href="#Random_Variable">Random Variable</a></li><li><a href="#Counter">Counter</a></li><li><a href="#Simple_Config_Element">Simple Config Element</a></li><li><a href="#MongoDB_Source_Config_(DEPRECATED)">MongoDB Source Config (DEPRECATED)</a></li></ul></li><li><a href="#assertions">19.5 Assertions</a><ul><li><a href="#Response_Assertion">Response Assertion</a></li><li><a href="#Duration_Assertion">Duration Assertion</a></li><li><a href="#Size_Assertion">Size Assertion</a></li><li><a href="#XML_Assertion">XML Assertion< /a></li><li><a href="#BeanShell_Assertion">BeanShell Assertion</a></li><li><a href="#MD5Hex_Assertion">MD5Hex Assertion</a></li><li><a href="#HTML_Assertion">HTML Assertion</a></li><li><a href="#XPath_Assertion">XPath Assertion</a></li><li><a href="#XML_Schema_Assertion">XML Schema Assertion</a></li><li><a href="#BSF_Assertion">BSF Assertion</a></li><li><a href="#JSR223_Assertion">JSR223 Assertion</a></li><li><a href="#Compare_Assertion">Compare Assertion</a></li><li><a href="#SMIME_Assertion">SMIME Assertion</a></li></ul></li><li><a href="#timers">19.6 Timers</a><ul><li><a href="#Constant_Timer">Constant Timer</a></li><li><a href="#Gaussian_Random_Timer">Gaussian Random Timer</a></li><li><a href="#Uniform_Random_Timer">Uniform Random Timer</a></li><li><a href="#Constant_Throughput_Timer">Constant Throughput Timer</a></li><li><a href="#Synchronizing_Timer">Synchronizing Timer</a></li><li><a href="#BeanShell_Timer">BeanShell Timer</a></li><li><a href="#BSF_Timer">BSF Timer</a></li><l i><a href="#JSR223_Timer">JSR223 Timer</a></li><li><a href="#Poisson_Random_Timer">Poisson Random Timer</a></li></ul></li><li><a href="#preprocessors">19.7 Pre Processors</a><ul><li><a href="#HTML_Link_Parser">HTML Link Parser</a></li><li><a href="#HTTP_URL_Re-writing_Modifier">HTTP URL Re-writing Modifier</a></li><li><a href="#User_Parameters">User Parameters</a></li><li><a href="#BeanShell_PreProcessor">BeanShell PreProcessor</a></li><li><a href="#BSF_PreProcessor">BSF PreProcessor</a></li><li><a href="#JSR223_PreProcessor">JSR223 PreProcessor</a></li><li><a href="#JDBC_PreProcessor">JDBC PreProcessor</a></li><li><a href="#RegEx_User_Parameters">RegEx User Parameters</a></li><li><a href="#Sample_Timeout">Sample Timeout</a></li></ul></li><li><a href="#postprocessors">19.8 Post-Processors</a><ul><li><a href="#Regular_Expression_Extractor">Regular Expression Extractor</a></li><li><a href="#CSS/JQuery_Extractor">CSS/JQuery Extractor</a></li><li><a href="#XPath_Extractor">XPath Extract or</a></li><li><a href="#Result_Status_Action_Handler">Result Status Action Handler</a></li><li><a href="#BeanShell_PostProcessor">BeanShell PostProcessor</a></li><li><a href="#BSF_PostProcessor">BSF PostProcessor</a></li><li><a href="#JSR223_PostProcessor">JSR223 PostProcessor</a></li><li><a href="#JDBC_PostProcessor">JDBC PostProcessor</a></li><li><a href="#JSON_Path_PostProcessor">JSON Path PostProcessor</a></li></ul></li><li><a href="#Miscellaneous_Features">19.9 Miscellaneous Features</a><ul><li><a href="#Test_Plan">Test Plan</a></li><li><a href="#Thread_Group">Thread Group</a></li><li><a href="#WorkBench">WorkBench</a></li><li><a href="#SSL_Manager">SSL Manager</a></li><li><a href="#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder (was: HTTP Proxy Server ) - </a></li><li><a href="#HTTP_Mirror_Server">HTTP Mirror Server</a></li><li><a href="#Property_Display">Property Display</a></li><li><a href="#Debug_Sampler">Debug Sampler</a></li><li><a href="#Debug_PostProcessor">Debug PostProcessor</a></li><li><a href="#Test_Fragment">Test Fragment</a></li><li><a href="#setUp_Thread_Group">setUp Thread Group</a></li><li><a href="#tearDown_Thread_Group">tearDown Thread Group</a></li></ul></li></ul><div class="section"><h1 id="introduction">18.0 Introduction<a class="sectionlink" href="#introduction" title="Link to here">¶</a></h1> + </a></li><li><a href="#HTTP_Mirror_Server">HTTP Mirror Server</a></li><li><a href="#Property_Display">Property Display</a></li><li><a href="#Debug_Sampler">Debug Sampler</a></li><li><a href="#Debug_PostProcessor">Debug PostProcessor</a></li><li><a href="#Test_Fragment">Test Fragment</a></li><li><a href="#setUp_Thread_Group">setUp Thread Group</a></li><li><a href="#tearDown_Thread_Group">tearDown Thread Group</a></li></ul></li></ul><div class="section"><h1 id="introduction">19 Introduction<a class="sectionlink" href="#introduction" title="Link to here">¶</a></h1> <div class="description"> <p> @@ -40,55 +40,49 @@ <div class="clear"></div><div class="note"> Several test elements use JMeter properties to control their behaviour. These properties are normally resolved when the class is loaded. - This generally occurs before the test plan starts, so it's not possible to change the settings by using the __setProperty() function. + This generally occurs before the test plan starts, so it's not possible to change the settings by using the <span class="code">__setProperty()</span> function. </div><div class="clear"></div> <p> </p> </div> -</div><div class="section"><h1 id="samplers">18.1 Samplers<a class="sectionlink" href="#samplers" title="Link to here">¶</a></h1> +</div><div class="section"><h1 id="samplers">19.1 Samplers<a class="sectionlink" href="#samplers" title="Link to here">¶</a></h1> <div class="description"> <p> Samplers perform the actual work of JMeter. - Each sampler (except Test Action) generates one or more sample results. - The sample results have various attributes (success/fail, elapsed time, data size etc) and can be viewed in the various listeners. + Each sampler (except <a href="../usermanual/component_reference.html#Test_Action">Test Action</a>) generates one or more sample results. + The sample results have various attributes (success/fail, elapsed time, data size etc.) and can be viewed in the various listeners. </p> </div> -<div class="component"><h2 id="FTP_Request">FTP Request<a class="sectionlink" href="#FTP_Request" title="Link to here">¶</a></h2><div class="screenshot"><a href="../images/screenshots/ftptest/ftp-request.png"><img src="../images/screenshots/ftptest/ftp-request.png" width="861" height="278" alt="Screenshot for FTP Request"></a></div> -<div class="description"> +<div class="component"><h2 id="FTP_Request">FTP Request<a class="sectionlink" href="#FTP_Request" title="Link to here">¶</a></h2><div class="description"> This controller lets you send an FTP "retrieve file" or "upload file" request to an FTP server. If you are going to send multiple requests to the same FTP server, consider using a <a href="../usermanual/component_reference.html#FTP_Request_Defaults">FTP Request Defaults</a> Configuration Element so you do not have to enter the same information for each FTP Request Generative Controller. When downloading a file, it can be stored on disk (Local File) or in the Response Data, or both. <p> -Latency is set to the time it takes to login (versions of JMeter after 2.3.1). +Latency is set to the time it takes to login. </p> -</div> -<div class="properties"><h3 id="FTP_Request_parms1"> +</div><div class="screenshot"><figure><a href="../images/screenshots/ftptest/ftp-request.png"><img src="../images/screenshots/ftptest/ftp-request.png" width="911" height="274" alt="Screenshot for Control-Panel of FTP Request"></a><figcaption>Screenshot of Control-Panel of FTP Request</figcaption></figure></div><div class="properties"><h3 id="FTP_Request_parms1"> Parameters <a class="sectionlink" href="#FTP_Request_parms1" title="Link to here">¶</a></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-false">Name</div><div class="description req-false">Descriptive name for this sampler that is shown in the tree.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-true">Server Name or IP</div><div class="description req-true">Domain name or IP address of the FTP server.</div><div class="required req-true">Yes</div></div> - <div class="property"><div class="name req-false">Port</div><div class="description req-false">Port to use. If this is >0, then this specific port is used, otherwise JMeter uses the default FTP port.</div><div class="required req-false">No</div></div> + <div class="property"><div class="name req-false">Port</div><div class="description req-false">Port to use. If this is <span class="code">>0</span>, then this specific port is used, + otherwise JMeter uses the default FTP port.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-true">Remote File:</div><div class="description req-true">File to retrieve or name of destination file to upload.</div><div class="required req-true">Yes</div></div> <div class="property"><div class="name req-true">Local File:</div><div class="description req-true">File to upload, or destination for downloads (defaults to remote file name).</div><div class="required req-true">Yes, if uploading (*)</div></div> <div class="property"><div class="name req-true">Local File Contents:</div><div class="description req-true">Provides the contents for the upload, overrides the Local File property.</div><div class="required req-true">Yes, if uploading (*)</div></div> <div class="property"><div class="name req-true">get(RETR) / put(STOR)</div><div class="description req-true">Whether to retrieve or upload a file.</div><div class="required req-true">Yes</div></div> - <div class="property"><div class="name req-true">Use Binary mode ?</div><div class="description req-true">Check this to use Binary mode (default Ascii)</div><div class="required req-true">Yes</div></div> - <div class="property"><div class="name req-true">Save File in Response ?</div><div class="description req-true"> + <div class="property"><div class="name req-true">Use Binary mode?</div><div class="description req-true">Check this to use Binary mode (default ASCII)</div><div class="required req-true">Yes</div></div> + <div class="property"><div class="name req-true">Save File in Response?</div><div class="description req-true"> Whether to store contents of retrieved file in response data. - If the mode is Ascii, then the contents will be visible in the Tree View Listener. + If the mode is ASCII, then the contents will be visible in the <a href="../usermanual/component_reference.html#View_Results_Tree">View Results Tree</a>. </div><div class="required req-true">Yes, if downloading</div></div> <div class="property"><div class="name req-false">Username</div><div class="description req-false">FTP account username.</div><div class="required req-false">Usually</div></div> <div class="property"><div class="name req-false">Password</div><div class="description req-false">FTP account password. N.B. This will be visible in the test plan.</div><div class="required req-false">Usually</div></div> -</div> -<div class="links"><div class="title">See also:</div><ul class="links"><li><a href="test_plan.html#assertions">Assertions</a></li><li><a href="../usermanual/component_reference.html#FTP_Request_Defaults">FTP Request Defaults</a></li><li><a href="build-ftp-test-plan.html">Building an FTP Test Plan</a></li></ul></div> - -<div class="go-top"><a href="#">^</a></div></div> - -<div class="component"><h2 id="HTTP_Request">HTTP Request<a class="sectionlink" href="#HTTP_Request" title="Link to here">¶</a></h2><div class="screenshot"><a href="../images/screenshots/http-request.png"><img src="../images/screenshots/http-request.png" width="900" height="686" alt="Screenshot for HTTP Request"></a></div> +</div><div class="links"><div class="title">See also:</div><ul class="links"><li><a href="test_plan.html#assertions">Assertions</a></li><li><a href="../usermanual/component_reference.html#FTP_Request_Defaults">FTP Request Defaults</a></li><li><a href="build-ftp-test-plan.html">Building an FTP Test Plan</a></li></ul></div><div class="go-top"><a href="#">^</a></div></div> -<div class="description"> +<div class="component"><h2 id="HTTP_Request">HTTP Request<a class="sectionlink" href="#HTTP_Request" title="Link to here">¶</a></h2><div class="description"> <p>This sampler lets you send an HTTP/HTTPS request to a web server. It also lets you control whether or not JMeter parses HTML files for images and other embedded resources and sends HTTP requests to retrieve them. @@ -103,8 +97,8 @@ Latency is set to the time it takes to l <li>background sound</li> </ul> <p> - The default parser is htmlparser. - This can be changed by using the property "htmlparser.classname" - see jmeter.properties for details. + The default parser is <span class="code">org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser</span>. + This can be changed by using the property "<span class="code">htmlparser.className</span>" - see <span class="code">jmeter.properties</span> for details. </p> <p>If you are going to send multiple requests to the same web server, consider using an <a href="../usermanual/component_reference.html#HTTP_Request_Defaults">HTTP Request Defaults</a> @@ -116,191 +110,193 @@ Latency is set to the time it takes to l them. This can save you time if you have a lot of HTTP requests or requests with many parameters.</p> - <p><b>There are two different test elements used to define the samplers:</b> - <ul> - <li>AJP/1.3 Sampler - uses the Tomcat mod_jk protocol (allows testing of Tomcat in AJP mode without needing Apache httpd) + <p><b>There are two different test elements used to define the samplers:</b></p> + <dl> + <dt>AJP/1.3 Sampler</dt><dd>uses the Tomcat mod_jk protocol (allows testing of Tomcat in AJP mode without needing Apache httpd) The AJP Sampler does not support multiple file upload; only the first file will be used. - </li> - <li>HTTP Request - this has an implementation drop-down box, which selects the HTTP protocol implementation to be used:</li> - <ul> - <li>Java - uses the HTTP implementation provided by the JVM. - This has some limitations in comparison with the HttpClient implementations - see below.</li> - <li>HTTPClient3.1 - uses Apache Commons HttpClient 3.1. - This is no longer being developed, and support for this may be dropped in a future JMeter release.</li> - <li>HTTPClient4 - uses Apache HttpComponents HttpClient 4.x.</li> - <li>Blank Value - does not set implementation on HTTP Samplers, so relies on HTTP Request Defaults if present or on jmeter.httpsampler property defined in jmeter.properties</li> - </ul> - </ul> - </p> + </dd> + <dt>HTTP Request</dt><dd>this has an implementation drop-down box, which selects the HTTP protocol implementation to be used: + <dl> + <dt><span class="code">Java</span></dt><dd>uses the HTTP implementation provided by the JVM. + This has some limitations in comparison with the HttpClient implementations - see below.</dd> + <dt><span class="code">HTTPClient3.1</span></dt><dd>(DEPRECATED SINCE 3.0) uses Apache Commons HttpClient 3.1. + This is no longer being developed, and support for this will be dropped in a future JMeter release.</dd> + <dt><span class="code">HTTPClient4</span></dt><dd>uses Apache HttpComponents HttpClient 4.x.</dd> + <dt>Blank Value</dt><dd>does not set implementation on HTTP Samplers, so relies on HTTP Request Defaults if present or on <span class="code">jmeter.httpsampler</span> property defined in <span class="code">jmeter.properties</span></dd> + </dl> + </dd> + </dl> <p>The Java HTTP implementation has some limitations:</p> <ul> - <li>There is no control over how connections are re-used. + <li>There is no control over how connections are re-used. When a connection is released by JMeter, it may or may not be re-used by the same thread.</li> - <li>The API is best suited to single-threaded usage - various settings + <li>The API is best suited to single-threaded usage - various settings are defined via system properties, and therefore apply to all connections.</li> - <li>There is a bug in the handling of HTTPS via a Proxy (the CONNECT is not handled correctly). + <li>There is a bug in the handling of HTTPS via a Proxy (the <span class="code">CONNECT</span> is not handled correctly). See Java bugs 6226610 and 6208335. </li> <li>It does not support virtual hosts.</li> - <li>It does not support the following methods: COPY, LOCK, MKCOL, MOVE, PATCH, PROPFIND, PROPPATCH, UNLOCK, REPORT, MKCALENDAR.</li> + <li>It supports only the following methods: <span class="code">GET</span>, <span class="code">POST</span>, <span class="code">HEAD</span>, <span class="code">OPTIONS</span>, <span class="code">PUT</span>, <span class="code">DELETE</span> and <span class="code">TRACE</span></li> <li>It does not support client based certificate testing with Keystore Config.</li> </ul> - <p>Note: the FILE protocol is intended for testing purposes only. - It is handled by the same code regardless of which HTTP Sampler is used.</p> + <div class="clear"></div><div class="note">Note: the <span class="code">FILE</span> protocol is intended for testing purposes only. + It is handled by the same code regardless of which HTTP Sampler is used.</div><div class="clear"></div> <p>If the request requires server or proxy login authorization (i.e. where a browser would create a pop-up dialog box), you will also have to add an <a href="../usermanual/component_reference.html#HTTP_Authorization_Manager">HTTP Authorization Manager</a> Configuration Element. For normal logins (i.e. where the user enters login information in a form), you will need to work out what the form submit button does, - and create an HTTP request with the appropriate method (usually POST) - and the appropriate parameters from the form definition. + and create an HTTP request with the appropriate method (usually <span class="code">POST</span>) + and the appropriate parameters from the form definition. If the page uses HTTP, you can use the JMeter Proxy to capture the login sequence. </p> <p> - In versions of JMeter up to 2.2, only a single SSL context was used for all threads and samplers. - This did not generate the proper load for multiple users. - A separate SSL context is now used for each thread. - To revert to the original behaviour, set the JMeter property: -<pre> + A separate SSL context is used for each thread. + If you want to use a single SSL context (not the standard behaviour of browsers), set the JMeter property:</p> +<pre class="source"> https.sessioncontext.shared=true </pre> By default, the SSL context is retained for the duration of the test. - In versions of JMeter from 2.5.1, the SSL session can be optionally reset for each test iteration. + The SSL session can be optionally reset for each test iteration. To enable this, set the JMeter property: -<pre> +<pre class="source"> https.use.cached.ssl.context=false </pre> - Note: this does not apply to the Java HTTP implementation. - </p> - <p> + <div class="clear"></div><div class="note"> + Note: this does not apply to the Java HTTP implementation. + </div><div class="clear"></div> JMeter defaults to the SSL protocol level TLS. - If the server needs a different level, e.g. SSLv3, change the JMeter property, for example: -<pre> + If the server needs a different level, e.g. <span class="code">SSLv3</span>, change the JMeter property, for example: +<pre class="source"> https.default.protocol=SSLv3 -</pre> - </p> +</pre> <p> - JMeter also allows one to enable additional protocols, by changing the property <tt>https.socket.protocols</tt>. + JMeter also allows one to enable additional protocols, by changing the property <span class="code">https.socket.protocols</span>. </p> <p>If the request uses cookies, then you will also need an <a href="../usermanual/component_reference.html#HTTP_Cookie_Manager">HTTP Cookie Manager</a>. You can - add either of these elements to the Thread Group or the HTTP Request. If you have + add either of these elements to the Thread Group or the HTTP Request. If you have more than one HTTP Request that needs authorizations or cookies, then add the - elements to the Thread Group. That way, all HTTP Request controllers will share the + elements to the Thread Group. That way, all HTTP Request controllers will share the same Authorization Manager and Cookie Manager elements.</p> <p>If the request uses a technique called "URL Rewriting" to maintain sessions, then see section <a href="build-adv-web-test-plan.html#session_url_rewriting">6.1 Handling User Sessions With URL Rewriting</a> for additional configuration steps.</p> -</div> -<div class="properties"><h3 id="HTTP_Request_parms1"> +</div><div class="screenshot"><figure><a href="../images/screenshots/http-request.png"><img src="../images/screenshots/http-request.png" width="953" height="611" alt="Screenshot for Control-Panel of HTTP Request"></a><figcaption>Screenshot of Control-Panel of HTTP Request</figcaption></figure></div><figure><a href="../images/screenshots/http-request-advanced-tab.png"><img src="../images/screenshots/http-request-advanced-tab.png" width="951" height="284" alt="HTTP Request Advanced config fields"></a><figcaption>HTTP Request Advanced config fields</figcaption></figure><div class="properties"><h3 id="HTTP_Request_parms1"> Parameters <a class="sectionlink" href="#HTTP_Request_parms1" title="Link to here">¶</a></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-false">Name</div><div class="description req-false">Descriptive name for this sampler that is shown in the tree.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-true">Server</div><div class="description req-true"> - Domain name or IP address of the web server. e.g. www.example.com. [Do not include the http:// prefix.] - Note: in JMeter 2.5 (and later) if the "Host" header is defined in a Header Manager, then this will be used + Domain name or IP address of the web server, e.g. <span class="code">www.example.com</span>. [Do not include the <span class="code">http://</span> prefix.] + Note: If the "<span class="code">Host</span>" header is defined in a Header Manager, then this will be used as the virtual host name. </div><div class="required req-true">Yes, unless provided by HTTP Request Defaults</div></div> - <div class="property"><div class="name req-false">Port</div><div class="description req-false">Port the web server is listening to. Default: 80</div><div class="required req-false">No</div></div> + <div class="property"><div class="name req-false">Port</div><div class="description req-false">Port the web server is listening to. Default: <span class="code">80</span></div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Connect Timeout</div><div class="description req-false">Connection Timeout. Number of milliseconds to wait for a connection to open.</div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Response Timeout</div><div class="description req-false">Response Timeout. Number of milliseconds to wait for a response. + <div class="property"><div class="name req-false">Response Timeout</div><div class="description req-false">Response Timeout. Number of milliseconds to wait for a response. Note that this applies to each wait for a response. If the server response is sent in several chunks, the overall elapsed time may be longer than the timeout. - A <a href="../usermanual/component_reference.html#Duration_Assertion">Duration Assertion</a> can be used to detect responses that take too long to complete. + <p>A <a href="../usermanual/component_reference.html#Duration_Assertion">Duration Assertion</a> can be used to detect responses that take too long to complete.</p> </div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Server (proxy)</div><div class="description req-false">Hostname or IP address of a proxy server to perform request. [Do not include the http:// prefix.]</div><div class="required req-false">No</div></div> + <div class="property"><div class="name req-false">Server (proxy)</div><div class="description req-false">Hostname or IP address of a proxy server to perform request. [Do not include the <span class="code">http://</span> prefix.]</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Port</div><div class="description req-false">Port the proxy server is listening to.</div><div class="required req-false">No, unless proxy hostname is specified</div></div> <div class="property"><div class="name req-false">Username</div><div class="description req-false">(Optional) username for proxy server.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Password</div><div class="description req-false">(Optional) password for proxy server. (N.B. this is stored unencrypted in the test plan)</div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Implementation</div><div class="description req-false">Java, HttpClient3.1, HttpClient4. + <div class="property"><div class="name req-false">Implementation</div><div class="description req-false"><span class="code">Java</span>, <span class="code">HttpClient3.1 (DEPRECATED SINCE 3.0)</span>, <span class="code">HttpClient4</span>. If not specified (and not defined by HTTP Request Defaults), the default depends on the value of the JMeter property <span class="code">jmeter.httpsampler</span>, failing that, the HttpClient4 implementation is used.</div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Protocol</div><div class="description req-false">HTTP, HTTPS or FILE. Default: HTTP</div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-true">Method</div><div class="description req-true">GET, POST, HEAD, TRACE, OPTIONS, PUT, DELETE, PATCH (not supported for - JAVA implementation). With HttpClient4, the following methods related to WebDav are also allowed: COPY, LOCK, MKCOL, MOVE, - PROPFIND, PROPPATCH, UNLOCK, REPORT, MKCALENDAR.</div><div class="required req-true">Yes</div></div> + <div class="property"><div class="name req-false">Protocol</div><div class="description req-false"><span class="code">HTTP</span>, <span class="code">HTTPS</span> or <span class="code">FILE</span>. Default: <span class="code">HTTP</span></div><div class="required req-false">No</div></div> + <div class="property"><div class="name req-true">Method</div><div class="description req-true"><span class="code">GET</span>, <span class="code">POST</span>, <span class="code">HEAD</span>, <span class="code">TRACE</span>, + <span class="code">OPTIONS</span>, <span class="code">PUT</span>, <span class="code">DELETE</span>, <span class="code">PATCH</span> (not supported for + <span class="code">JAVA</span> implementation). With <span class="code">HttpClient4</span>, the following methods related to WebDav are + also allowed: <span class="code">COPY</span>, <span class="code">LOCK</span>, <span class="code">MKCOL</span>, <span class="code">MOVE</span>, + <span class="code">PROPFIND</span>, <span class="code">PROPPATCH</span>, <span class="code">UNLOCK</span>, <span class="code">REPORT</span>, <span class="code">MKCALENDAR</span>, + <span class="code">SEARCH</span>. + <p>More methods can be pre-defined for the HttpClient4 by using the JMeter property + <span class="code">httpsampler.user_defined_methods</span>.</p> + </div><div class="required req-true">Yes</div></div> <div class="property"><div class="name req-false">Content Encoding</div><div class="description req-false"> - Content encoding to be used (for POST, PUT, PATCH and FILE). - This the the character encoding to be used, and is not related to the Content-Encoding HTTP header. + Content encoding to be used (for <span class="code">POST</span>, <span class="code">PUT</span>, <span class="code">PATCH</span> and <span class="code">FILE</span>). + This is the character encoding to be used, and is not related to the Content-Encoding HTTP header. </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Redirect Automatically</div><div class="description req-false"> Sets the underlying http protocol handler to automatically follow redirects, so they are not seen by JMeter, and thus will not appear as samples. - Should only be used for GET and HEAD requests. - The HttpClient sampler will reject attempts to use it for POST or PUT. - <b>Warning: see below for information on cookie and header handling.</b> + Should only be used for <span class="code">GET</span> and <span class="code">HEAD</span> requests. + The HttpClient sampler will reject attempts to use it for <span class="code">POST</span> or <span class="code">PUT</span>. + <div class="clear"></div><div class="note">Warning: see below for information on cookie and header handling.</div><div class="clear"></div> </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Follow Redirects</div><div class="description req-false"> - This only has any effect if "Redirect Automatically" is not enabled. + This only has any effect if "<span class="code">Redirect Automatically</span>" is not enabled. If set, the JMeter sampler will check if the response is a redirect and follow it if so. The initial redirect and further responses will appear as additional samples. The URL and data fields of the parent sample will be taken from the final (non-redirected) sample, but the parent byte count and elapsed time include all samples. - The latency is taken from the initial response (versions of JMeter after 2.3.4 - previously it was zero). - Note that the HttpClient sampler may log the following message:<br> - "Redirect requested but followRedirects is disabled"<br> + The latency is taken from the initial response. + Note that the HttpClient sampler may log the following message: + <pre class="source">"Redirect requested but followRedirects is disabled"</pre> This can be ignored. <br> - In versions after 2.3.4, JMeter will collapse paths of the form '/../segment' in - both absolute and relative redirect URLs. For example http://host/one/../two => http://host/two. + JMeter will collapse paths of the form '<span class="code">/../segment</span>' in + both absolute and relative redirect URLs. For example <span class="code">http://host/one/../two</span> will be collapsed into <span class="code">http://host/two</span>. If necessary, this behaviour can be suppressed by setting the JMeter property <span class="code">httpsampler.redirect.removeslashdotdot=false</span> </div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Use KeepAlive</div><div class="description req-false">JMeter sets the Connection: keep-alive header. This does not work properly with the default HTTP implementation, as connection re-use is not under user-control. + <div class="property"><div class="name req-false">Use KeepAlive</div><div class="description req-false">JMeter sets the Connection: <span class="code">keep-alive</span> header. This does not work properly with the default HTTP implementation, as connection re-use is not under user-control. It does work with the Apache HttpComponents HttpClient implementations.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Use multipart/form-data for HTTP POST</div><div class="description req-false"> - Use a multipart/form-data or application/x-www-form-urlencoded post request + Use a <span class="code">multipart/form-data</span> or <span class="code">application/x-www-form-urlencoded</span> post request </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Browser-compatible headers</div><div class="description req-false"> - When using multipart/form-data, this suppresses the Content-Type and - Content-Transfer-Encoding headers; only the Content-Disposition header is sent. + When using <span class="code">multipart/form-data</span>, this suppresses the <span class="code">Content-Type</span> and + <span class="code">Content-Transfer-Encoding</span> headers; only the <span class="code">Content-Disposition</span> header is sent. </div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-true">Path</div><div class="description req-true">The path to resource (for example, /servlets/myServlet). If the + <div class="property"><div class="name req-true">Path</div><div class="description req-true">The path to resource (for example, <span class="code">/servlets/myServlet</span>). If the resource requires query string parameters, add them below in the "Send Parameters With the Request" section. -<b> -As a special case, if the path starts with "http://" or "https://" then this is used as the full URL. -</b> -In this case, the server, port and protocol fields are ignored; parameters are also ignored for GET and DELETE methods. -Also please note that the path is not encoded - apart from replacing spaces with %20 - -so unsafe characters may need to be encoded to avoid errors such as URISyntaxException. +<div class="clear"></div><div class="note"> +As a special case, if the path starts with "<span class="code">http://</span>" or "<span class="code">https://</span>" then this is used as the full URL. +</div><div class="clear"></div> +In this case, the server, port and protocol fields are ignored; parameters are also ignored for <span class="code">GET</span> and <span class="code">DELETE</span> methods. +Also please note that the path is not encoded - apart from replacing spaces with <span class="code">%20</span> - +so unsafe characters may need to be encoded to avoid errors such as <span class="code">URISyntaxException</span>. </div><div class="required req-true">Yes</div></div> <div class="property"><div class="name req-false">Send Parameters With the Request</div><div class="description req-false">The query string will - be generated from the list of parameters you provide. Each parameter has a <i>name</i> and - <i>value</i>, the options to encode the parameter, and an option to include or exclude an equals sign (some applications + be generated from the list of parameters you provide. Each parameter has a <span class="code">name</span> and + <span class="code">value</span>, the options to encode the parameter, and an option to include or exclude an equals sign (some applications don't expect an equals when the value is the empty string). The query string will be generated in the correct fashion, depending on - the choice of "Method" you made (ie if you chose GET or DELETE, the query string will be - appended to the URL, if POST or PUT, then it will be sent separately). Also, if you are + the choice of "Method" you made (i.e. if you chose <span class="code">GET</span> or <span class="code">DELETE</span>, the query string will be + appended to the URL, if <span class="code">POST</span> or <span class="code">PUT</span>, then it will be sent separately). Also, if you are sending a file using a multipart form, the query string will be created using the multipart form specifications. <b>See below for some further information on parameter handling.</b> <p> Additionally, you can specify whether each parameter should be URL encoded. If you are not sure what this means, it is probably best to select it. If your values contain characters such as the following then encoding is usually required.: + </p> <ul> <li>ASCII Control Chars</li> <li>Non-ASCII characters</li> - <li>Reserved characters:URLs use some characters for special use in defining their syntax. When these characters are not used in their special role inside a URL, they need to be encoded, example : '$', '&', '+', ',' , '/', ':', ';', '=', '?', '@'</li> - <li>Unsafe characters: Some characters present the possibility of being misunderstood within URLs for various reasons. These characters should also always be encoded, example : ' ', '<', '>', '#', '%', ...</li> + <li>Reserved characters:URLs use some characters for special use in defining their syntax. When these characters are not used in their special role inside a URL, they need to be encoded, example : '<span class="code">$</span>', '<span class="code">&</span>', '<span class="code">+</span>', '<span class="code">,</span>' , '<span class="code">/</span>', '<span class="code">:</span>', '<span class="code">;</span>', '<span class="code">=</span>', '<span class="code">?</span>', '<span class="code">@</span>'</li> + <li>Unsafe characters: Some characters present the possibility of being misunderstood within URLs for various reasons. These characters should also always be encoded, example : '<span class="code"> </span>', '<span class="code"><</span>', '<span class="code">></span>', '<span class="code">#</span>', '<span class="code">%</span>', …</li> </ul> - </p> </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">File Path:</div><div class="description req-false">Name of the file to send. If left blank, JMeter does not send a file, if filled in, JMeter automatically sends the request as a multipart form request. <p> - If it is a POST or PUT or PATCH request and there is a single file whose 'Parameter name' attribute (below) is omitted, + If it is a <span class="code">POST</span> or <span class="code">PUT</span> or <span class="code">PATCH</span> request and there is a single file whose 'Parameter name' attribute (below) is omitted, then the file is sent as the entire body - of the request, i.e. no wrappers are added. This allows arbitrary bodies to be sent. This functionality is present for POST requests - after version 2.2, and also for PUT requests after version 2.3. + of the request, i.e. no wrappers are added. This allows arbitrary bodies to be sent. This functionality is present for <span class="code">POST</span> requests, + and also for <span class="code">PUT</span> requests. <b>See below for some further information on parameter handling.</b> </p> </div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">Parameter name:</div><div class="description req-false">Value of the "name" web request parameter.</div><div class="required req-false">No</div></div> - <div class="property"><div class="name req-false">MIME Type</div><div class="description req-false">MIME type (for example, text/plain). - If it is a POST or PUT or PATCH request and either the 'name' attribute (below) are omitted or the request body is + <div class="property"><div class="name req-false">Parameter name:</div><div class="description req-false">Value of the "<span class="code">name</span>" web request parameter.</div><div class="required req-false">No</div></div> + <div class="property"><div class="name req-false">MIME Type</div><div class="description req-false">MIME type (for example, <span class="code">text/plain</span>). + If it is a <span class="code">POST</span> or <span class="code">PUT</span> or <span class="code">PATCH</span> request and either the '<span class="code">name</span>' attribute (below) are omitted or the request body is constructed from parameter values only, then the value of this field is used as the value of the - content-type request header. + <span class="code">content-type</span> request header. </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Retrieve All Embedded Resources from HTML Files</div><div class="description req-false">Tell JMeter to parse the HTML file and send HTTP/HTTPS requests for all images, Java applets, JavaScript files, CSSs, etc. referenced in the file. @@ -314,8 +310,8 @@ and send HTTP/HTTPS requests for all ima </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Embedded URLs must match:</div><div class="description req-false"> If present, this must be a regular expression that is used to match against any embedded URLs found. - So if you only want to download embedded resources from http://example.com/, use the expression: - http://example\.com/.* + So if you only want to download embedded resources from <span class="code">http://example.com/</span>, use the expression: + <span class="code">http://example\.com/.*</span> </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Use concurrent pool</div><div class="description req-false">Use a pool of concurrent connections to get embedded resources.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Size</div><div class="description req-false">Pool size for concurrent connections used to get embedded resources.</div><div class="required req-false">No</div></div> @@ -326,8 +322,8 @@ and send HTTP/HTTPS requests for all ima <li>Select <i>IP/Hostname</i> to use a specific IP address or a (local) hostname</li> <li>Select <i>Device</i> to pick the first available address for that interface which this may be either IPv4 or IPv6</li> - <li>Select <i>Device IPv4</i>To select the IPv4 address of the device name (like eth0, lo, em0, etc.)</li> - <li>Select <i>Device IPv6</i>To select the IPv6 address of the device name (like eth0, lo, em0, etc.)</li> + <li>Select <i>Device IPv4</i> to select the IPv4 address of the device name (like <span class="code">eth0</span>, <span class="code">lo</span>, <span class="code">em0</span>, etc.)</li> + <li>Select <i>Device IPv6</i> to select the IPv6 address of the device name (like <span class="code">eth0</span>, <span class="code">lo</span>, <span class="code">em0</span>, etc.)</li> </ul> </div><div class="required req-false">No</div></div> <div class="property"><div class="name req-false">Source address field</div><div class="description req-false"> @@ -335,141 +331,102 @@ and send HTTP/HTTPS requests for all ima This property is used to enable IP Spoofing. It override the default local IP address for this sample. The JMeter host must have multiple IP addresses (i.e. IP aliases, network interfaces, devices). - The value can be a host name, IP address, or a network interface device such as "eth0" or "lo" or "wlan0".<br> - If the property <b>httpclient.localaddress</b> is defined, that is used for all HttpClient requests. + The value can be a host name, IP address, or a network interface device such as "<span class="code">eth0</span>" or "<span class="code">lo</span>" or "<span class="code">wlan0</span>".<br> + If the property <span class="code">httpclient.localaddress</span> is defined, that is used for all HttpClient requests. </div><div class="required req-false">No</div></div> -</div> -<p> -<b>N.B.</b> when using Automatic Redirection, cookies are only sent for the initial URL. +</div><div class="clear"></div><div class="note"> +When using Automatic Redirection, cookies are only sent for the initial URL. This can cause unexpected behaviour for web-sites that redirect to a local server. -E.g. if www.example.com redirects to www.example.co.uk. +E.g. if <span class="code">www.example.com</span> redirects to <span class="code">www.example.co.uk</span>. In this case the server will probably return cookies for both URLs, but JMeter will only see the cookies for the last -host, i.e. www.example.co.uk. If the next request in the test plan uses www.example.com, -rather than www.example.co.uk, it will not get the correct cookies. +host, i.e. <span class="code">www.example.co.uk</span>. If the next request in the test plan uses <span class="code">www.example.com</span>, +rather than <span class="code">www.example.co.uk</span>, it will not get the correct cookies. Likewise, Headers are sent for the initial request, and won't be sent for the redirect. This is generally only a problem for manually created test plans, as a test plan created using a recorder would continue from the redirected URL. -</p> -<p> +</div><div class="clear"></div><p> <b>Parameter Handling:</b><br> -For the POST and PUT method, if there is no file to send, and the name(s) of the parameter(s) are omitted, +For the <span class="code">POST</span> and <span class="code">PUT</span> method, if there is no file to send, and the name(s) of the parameter(s) are omitted, then the body is created by concatenating all the value(s) of the parameters. Note that the values are concatenated without adding any end-of-line characters. -These can be added by using the __char() function in the value fields. +These can be added by using the <span class="code">__char()</span> function in the value fields. This allows arbitrary bodies to be sent. -The values are encoded if the encoding flag is set (versions of JMeter after 2.3). -See also the MIME Type above how you can control the content-type request header that is sent. +The values are encoded if the encoding flag is set. +See also the MIME Type above how you can control the <span class="code">content-type</span> request header that is sent. <br> For other methods, if the name of the parameter is missing, then the parameter is ignored. This allows the use of optional parameters defined by variables. -(versions of JMeter after 2.3) -</p> -<br> -<p>Since JMeter 2.6, you have the option to switch to Post Body when a request has only unnamed parameters +</p><br><p>You have the option to switch to Post Body when a request has only unnamed parameters (or no parameters at all). -This option is useful in the following cases (amongst others): -<ul> +This option is useful in the following cases (amongst others):</p><ul> <li>GWT RPC HTTP Request</li> <li>JSON REST HTTP Request</li> <li>XML REST HTTP Request</li> <li>SOAP HTTP Request</li> -</ul> +</ul><div class="clear"></div><div class="note"> Note that once you leave the Tree node, you cannot switch back to the parameter tab unless you clear the Post Body tab of data. -</p> -<p> -In Post Body mode, each line will be sent with CRLF appended, apart from the last line. -To send a CRLF after the last line of data, just ensure that there is an empty line following it. +</div><div class="clear"></div><p> +In Post Body mode, each line will be sent with <span class="code">CRLF</span> appended, apart from the last line. +To send a <span class="code">CRLF</span> after the last line of data, just ensure that there is an empty line following it. (This cannot be seen, except by noting whether the cursor can be placed on the subsequent line.) -</p> -<figure><a href="../images/screenshots/http-request-raw-single-parameter.png"><img src="../images/screenshots/http-request-raw-single-parameter.png" width="902" height="421" alt="Figure 1 - HTTP Request with one unnamed parameter"></a><figcaption>Figure 1 - HTTP Request with one unnamed parameter</figcaption></figure> -<figure><a href="../images/screenshots/http-request-confirm-raw-body.png"><img src="../images/screenshots/http-request-confirm-raw-body.png" width="908" height="212" alt="Figure 2 - Confirm dialog to switch"></a><figcaption>Figure 2 - Confirm dialog to switch</figcaption></figure> -<figure><a href="../images/screenshots/http-request-raw-body.png"><img src="../images/screenshots/http-request-raw-body.png" width="905" height="423" alt="Figure 3 - HTTP Request using Body Data"></a><figcaption>Figure 3 - HTTP Request using Body Data</figcaption></figure> - -<p> +</p><figure><a href="../images/screenshots/http-request-raw-single-parameter.png"><img src="../images/screenshots/http-request-raw-single-parameter.png" width="902" height="421" alt="Figure 1 - HTTP Request with one unnamed parameter"></a><figcaption>Figure 1 - HTTP Request with one unnamed parameter</figcaption></figure><figure><a href="../images/screenshots/http-request-confirm-raw-body.png"><img src="../images/screenshots/http-request-confirm-raw-body.png" width="908" height="212" alt="Figure 2 - Confirm dialog to switch"></a><figcaption>Figure 2 - Confirm dialog to switch</figcaption></figure><figure><a href="../images/screenshots/http-request-raw-body.png"><img src="../images/screenshots/http-request-raw-body.png" width="905" height="423" alt="Figure 3 - HTTP Request using Body Data"></a><figcaption>Figure 3 - HTTP Request using Body Data</figcaption></figure><p> <b>Method Handling:</b><br> -The POST, PUT and PATCH request methods work similarly, except that the PUT and PATCH methods do not support multipart requests +The <span class="code">POST</span>, <span class="code">PUT</span> and <span class="code">PATCH</span> request methods work similarly, except that the <span class="code">PUT</span> and <span class="code">PATCH</span> methods do not support multipart requests or file upload. -The PUT and PATCH method body must be provided as one of the following: -<ul> +The <span class="code">PUT</span> and <span class="code">PATCH</span> method body must be provided as one of the following:</p><ul> <li>define the body as a file with empty Parameter name field; in which case the MIME Type is used as the Content-Type</li> <li>define the body as parameter value(s) with no name</li> <li>use the Post Body tab</li> -</ul> -If you define any parameters with a name in either the sampler or Http +</ul><p> +If you define any parameters with a name in either the sampler or HTTP defaults then nothing is sent. -PUT and PATCH require a Content-Type. +<span class="code">PUT</span> and <span class="code">PATCH</span> require a Content-Type. If not using a file, attach a Header Manager to the sampler and define the Content-Type there. -The GET and DELETE request methods work similarly to each other. -</p> -<p>Upto and including JMeter 2.1.1, only responses with the content-type "text/html" were scanned for -embedded resources. Other content-types were assumed to be something other than HTML. -JMeter 2.1.2 introduces the a new property <b>HTTPResponse.parsers</b>, which is a list of parser ids, - e.g. <b>htmlParser</b> and <b>wmlParser</b>. For each id found, JMeter checks two further properties:</p> - <ul> - <li>id.types - a list of content types</li> - <li>id.className - the parser to be used to extract the embedded resources</li> - </ul> - <p>See jmeter.properties file for the details of the settings. - If the HTTPResponse.parser property is not set, JMeter reverts to the previous behaviour, - i.e. only text/html responses will be scanned</p> -<b>Emulating slow connections:</b><br> -HttpClient31, HttpClient4 and Java Sampler support emulation of slow connections; see the following entries in jmeter.properties: -<pre> +The <span class="code">GET</span> and <span class="code">DELETE</span> request methods work similarly to each other. +</p><p>JMeter scan responses from embedded resources. It uses the property <span class="code">HTTPResponse.parsers</span>, which is a list of parser ids, + e.g. <span class="code">htmlParser</span> and <span class="code">wmlParser</span>. For each id found, JMeter checks two further properties:</p><ul> + <li><span class="code">id.types</span> - a list of content types</li> + <li><span class="code">id.className</span> - the parser to be used to extract the embedded resources</li> + </ul><p>See <span class="code">jmeter.properties</span> file for the details of the settings. + If the <span class="code">HTTPResponse.parser</span> property is not set, JMeter reverts to the previous behaviour, + i.e. only <span class="code">text/html</span> responses will be scanned</p><b>Emulating slow connections:</b><br><span class="code">HttpClient31</span><span class="code">HttpClient4</span><span class="code">Java</span><span class="code">jmeter.properties</span><pre class="source"> # Define characters per second > 0 to emulate slow connections #httpclient.socket.http.cps=0 #httpclient.socket.https.cps=0 -</pre> -<p><b>Response size calculation</b><br> -Optional properties to allow change the method to get response size:<br> -<ul><li>Gets the real network size in bytes for the body response -<pre>sampleresult.getbytes.body_real_size=true</pre></li> +</pre><p><b>Response size calculation</b><br> +Optional properties to allow change the method to get response size:<br></p><ul><li>Gets the real network size in bytes for the body response +<pre class="source">sampleresult.getbytes.body_real_size=true</pre></li> <li>Add HTTP headers to full response size -<pre>sampleresult.getbytes.headers_size=true</pre></li></ul> - -<div class="clear"></div><div class="note"> -The Java and HttpClient3 inplementations do not include transport overhead such as +<pre class="source">sampleresult.getbytes.headers_size=true</pre></li></ul><div class="clear"></div><div class="note"> +The <span class="code">Java</span> and <span class="code">HttpClient3</span> implementations do not include transport overhead such as chunk headers in the response body size.<br> -The HttpClient4 implementation does include the overhead in the response body size, +The <span class="code">HttpClient4</span> implementation does include the overhead in the response body size, so the value may be greater than the number of bytes in the response content. -</div><div class="clear"></div> - -<div class="clear"></div><div class="note">Versions of JMeter before 2.5 returns only data response size (uncompressed if request uses gzip/defate mode). -<br>To return to settings before version 2.5, set the two properties to false.</div><div class="clear"></div> -</p> -<p> +</div><div class="clear"></div><div class="clear"></div><div class="note">When those two properties are set <span class="code">false</span>, JMeter returns only data response size (uncompressed if request uses gzip/deflate mode).</div><div class="clear"></div><p> <b>Retry handling</b><br> -In version 2.5 of JMeter, the HttpClient4 and Commons HttpClient 3.1 samplers used the default retry count, which was 3. -In later versions, the retry count has been set to 1, which is what the Java implementation appears to do. +For HttpClient4 and Commons HttpClient 3.1 samplers, the retry count has been set to <span class="code">0</span>, meaning not retry is attempted. +Note that the Java implementation appears to retry 1 time. The retry count can be overridden by setting the relevant JMeter property, for example: -<pre> +</p><pre class="source"> httpclient4.retrycount=3 httpclient3.retrycount=3 -</pre> -</p> -<p> +</pre><p> <b>Note: Certificates does not conform to algorithm constraints</b><br> -You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i> +You may encounter the following error: <span class="code">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</span> if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature - algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits. + algorithm using MD2 (like <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits. </p><p> This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too. </p><p> -To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing -the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case. +To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing +the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case. </p><p> -This property is in this file: -<pre>JAVA_HOME/jre/lib/security/java.security</pre> -See <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56357"> +This property is in this file:</p><pre class="source">JAVA_HOME/jre/lib/security/java.security</pre><p>See <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56357"> Bug 56357</a> for details. -</p> -<div class="links"><div class="title">See also:</div><ul class="links"><li><a href="test_plan.html#assertions">Assertion</a></li><li><a href="build-web-test-plan.html">Building a Web Test Plan</a></li><li><a href="build-adv-web-test-plan.html">Building an Advanced Web Test Plan</a></li><li><a href="../usermanual/component_reference.html#HTTP_Authorization_Manager">HTTP Authorization Manager</a></li><li><a href="../usermanual/component_reference.html#HTTP_Cookie_Manager">HTTP Cookie Manager</a></li><li><a href="../usermanual/component_reference.html#HTTP_Header_Manager">HTTP Header Manager</a></li><li><a href="../usermanual/component_reference.html#HTML_Link_Parser">HTML Link Parser</a></li><li><a href="../usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a></li><li><a href="../usermanual/component_reference.html#HTTP_Request_Defaults">HTTP Request Defaults</a></li><li><a href="build-adv-web-test-plan.html#session_url_rewriting">HTTP Requ ests and Session ID's: URL Rewriting</a></li></ul></div> - -<div class="go-top"><a href="#">^</a></div></div> +</p><div class="links"><div class="title">See also:</div><ul class="links"><li><a href="test_plan.html#assertions">Assertion</a></li><li><a href="build-web-test-plan.html">Building a Web Test Plan</a></li><li><a href="build-adv-web-test-plan.html">Building an Advanced Web Test Plan</a></li><li><a href="../usermanual/component_reference.html#HTTP_Authorization_Manager">HTTP Authorization Manager</a></li><li><a href="../usermanual/component_reference.html#HTTP_Cookie_Manager">HTTP Cookie Manager</a></li><li><a href="../usermanual/component_reference.html#HTTP_Header_Manager">HTTP Header Manager</a></li><li><a href="../usermanual/component_reference.html#HTML_Link_Parser">HTML Link Parser</a></li><li><a href="../usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a></li><li><a href="../usermanual/component_reference.html#HTTP_Request_Defaults">HTTP Request Defaults</a></li><li><a href="build-adv-web-test-plan.html#session_url_rewriting">HTTP Requests and Session ID's: URL Rewriting</a></li></ul></div><div class="go-top"><a href="#">^</a></div></div> -<div class="component"><h2 id="JDBC_Request">JDBC Request<a class="sectionlink" href="#JDBC_Request" title="Link to here">¶</a></h2><div class="screenshot"><a href="../images/screenshots/jdbctest/jdbc-request.png"><img src="../images/screenshots/jdbctest/jdbc-request.png" width="466" height="334" alt="Screenshot for JDBC Request"></a></div> - -<div class="description"><p>This sampler lets you send an JDBC Request (an SQL query) to a database.</p> +<div class="component"><h2 id="JDBC_Request">JDBC Request<a class="sectionlink" href="#JDBC_Request" title="Link to here">¶</a></h2><div class="description"><p>This sampler lets you send an JDBC Request (an SQL query) to a database.</p> <p>Before using this you need to set up a <a href="../usermanual/component_reference.html#JDBC_Connection_Configuration">JDBC Connection Configuration</a> Configuration element </p> @@ -477,8 +434,8 @@ See <a href="http://bz.apache.org/bugzi If the Variable Names list is provided, then for each row returned by a Select statement, the variables are set up with the value of the corresponding column (if a variable name is provided), and the count of rows is also set up. For example, if the Select statement returns 2 rows of 3 columns, and the variable list is <span class="code">A,,C</span>, -then the following variables will be set up: -<pre> +then the following variables will be set up:</p> +<pre class="source"> A_#=2 (number of rows) A_1=column 1, row 1 A_2=column 1, row 2 @@ -486,24 +443,21 @@ C_#=2 (number of rows) C_1=column 3, row 1 C_2=column 3, row 2 </pre> -If the Select statement returns zero rows, then the A_# and C_# variables would be set to 0, and no other variables would be set. -</p> <p> -Old variables are cleared if necessary - e.g. if the first select retrieves 6 rows and a second select returns only 3 rows, -the additional variables for rows 4, 5 and 6 will be removed. +If the Select statement returns zero rows, then the <span class="code">A_#</span> and <span class="code">C_#</span> variables would be set to <span class="code">0</span>, and no other variables would be set. </p> <p> -<b>Note:</b> The latency time is set from the time it took to acquire a connection. +Old variables are cleared if necessary - e.g. if the first select retrieves six rows and a second select returns only three rows, +the additional variables for rows four, five and six will be removed. </p> -</div> - -<div class="properties"><h3 id="JDBC_Request_parms1"> +<div class="clear"></div><div class="note">The latency time is set from the time it took to acquire a connection.</div><div class="clear"></div> +</div><div class="screenshot"><figure><a href="../images/screenshots/jdbctest/jdbc-request.png"><img src="../images/screenshots/jdbctest/jdbc-request.png" width="710" height="629" alt="Screenshot for Control-Panel of JDBC Request"></a><figcaption>Screenshot of Control-Panel of JDBC Request</figcaption></figure></div><div class="properties"><h3 id="JDBC_Request_parms1"> Parameters <a class="sectionlink" href="#JDBC_Request_parms1" title="Link to here">¶</a></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-false">Name</div><div class="description req-false">Descriptive name for this sampler that is shown in the tree.</div><div class="required req-false">No</div></div> <div class="property"><div class="name req-true">Variable Name</div><div class="description req-true"> Name of the JMeter variable that the connection pool is bound to. - This must agree with the 'Variable Name' field of a JDBC Connection Configuration.
[... 8332 lines stripped ...]
