jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From milam...@apache.org
Subject svn commit: r1532767 [5/7] - in /jmeter/trunk: docs/ docs/images/ docs/localising/ docs/usermanual/ src/core/org/apache/jmeter/util/ xdocs/
Date Wed, 16 Oct 2013 13:57:03 GMT
Modified: jmeter/trunk/docs/usermanual/component_reference.html
URL: http://svn.apache.org/viewvc/jmeter/trunk/docs/usermanual/component_reference.html?rev=1532767&r1=1532766&r2=1532767&view=diff
==============================================================================
--- jmeter/trunk/docs/usermanual/component_reference.html (original)
+++ jmeter/trunk/docs/usermanual/component_reference.html Wed Oct 16 13:57:02 2013
@@ -6,9 +6,9 @@
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
- 
+
        http://www.apache.org/licenses/LICENSE-2.0
- 
+
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,22 +20,16 @@
 
 
 <!-- start the processing -->
-<!-- ====================================================================== -->
-<!-- Main Page Section -->
-<!-- ====================================================================== -->
 <html>
 <head>
 <link rel="stylesheet" type="text/css" href="../css/style.css"/>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
 
-
-
 <title>Apache JMeter - User's Manual: Component Reference</title>
 </head>
 
 <body bgcolor="#ffffff" text="#000000" link="#525D76">
 <table border="0" cellspacing="0">
-<!-- TOP IMAGE -->
 <tr>
 <td>
 <!-- Need to specify height otherwise iframe seems to grab extra -->
@@ -65,7 +59,7 @@ style="border-width:0; float: left" fram
 </li>
 <li><a href="http://projects.apache.org/feeds/rss/jmeter.xml">Subscribe to What's New</a>
 </li>
-<li><a href="../issues.html">Issues</a>
+<li><a href="../issues.html">Issue Tracking</a>
 </li>
 <li><a href="http://www.apache.org/licenses/">License</a>
 </li>
@@ -115,8 +109,6 @@ style="border-width:0; float: left" fram
 </ul>
 <p><strong>Community</strong></p>
 <ul>
-<li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
-</li>
 <li><a href="../mail.html">Mailing Lists</a>
 </li>
 <li><a href="../svnindex.html">SVN Repositories</a>
@@ -126,6 +118,8 @@ style="border-width:0; float: left" fram
 <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>
@@ -174,6 +168,7 @@ style="border-width:0; float: left" fram
 <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><a href="#logic_controllers">18.2 Logic Controllers</a></li>
 <ul>
@@ -237,6 +232,7 @@ style="border-width:0; float: left" fram
 <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><a href="#assertions">18.5 Assertions</a></li>
 <ul>
@@ -270,7 +266,7 @@ style="border-width:0; float: left" fram
 <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">HTML Parameter Mask</a></li>
+<li><a href="#HTML_Parameter_Mask_(DEPRECATED)">HTML Parameter Mask (DEPRECATED)</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>
@@ -295,7 +291,7 @@ style="border-width:0; float: left" fram
 <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_Proxy_Server">HTTP Proxy Server</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>
@@ -355,13 +351,13 @@ style="border-width:0; float: left" fram
 <blockquote>
 <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.
-	
+    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.
+    
 </p>
 
 
@@ -392,7 +388,7 @@ Latency is set to the time it takes to l
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='519' height='289' src="../images/screenshots/ftptest/ftp-request.png"></div>
+<div align="center"><img width='861' height='278' src="../images/screenshots/ftptest/ftp-request.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="FTP_Request_parms"/>
@@ -585,7 +581,7 @@ If you are going to send multiple reques
 <p>
 Or, instead of manually adding HTTP Requests, you may want to use
         JMeter's 
-<a href="../usermanual/component_reference.html#HTTP_Proxy_Server">HTTP Proxy Server</a>
+<a href="../usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>
  to create
         them.  This can save you time if you have a lot of HTTP requests or requests with many
         parameters.
@@ -663,7 +659,7 @@ There is no control over how connections
 
          
 <li>
-The API is best suited to single-threaded usage - various settings (e.g. proxy) 
+The API is best suited to single-threaded usage - various settings 
          are defined via system properties, and therefore apply to all connections.
 </li>
 
@@ -782,7 +778,7 @@ If the request uses a technique called "
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='907' height='674' src="../images/screenshots/http-request.png"></div>
+<div align="center"><img width='900' height='686' src="../images/screenshots/http-request.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="HTTP_Request_parms"/>
@@ -872,7 +868,7 @@ No
 <code>
 jmeter.httpsampler
 </code>
-, failing that, the Java implementation is used.
+, failing that, the HttpClient4 implementation is used.
 </td>
 <td>
 No
@@ -908,11 +904,11 @@ No
 <tr>
 <td>Redirect Automatically</td>
 <td>
-		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.
-		
+        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>
@@ -926,21 +922,21 @@ No
 <tr>
 <td>Follow Redirects</td>
 <td>
-		This only has any effect if "Redirect Automatically" 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.
+        This only has any effect if "Redirect Automatically" 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:
+        Note that the HttpClient sampler may log the following message:
 <br>
 
 
-		"Redirect requested but followRedirects is disabled"
+        "Redirect requested but followRedirects is disabled"
 <br>
 
 
-		This can be ignored.
+        This can be ignored.
         
 <br>
 
@@ -953,7 +949,7 @@ No
 httpsampler.redirect.removeslashdotdot=false
 </code>
 
-		
+        
 </td>
 <td>
 No
@@ -1001,7 +997,9 @@ As a special case, if the path starts wi
 
 </b>
 
-In this case, the server, port and protocol are ignored; parameters are also ignored for GET and DELETE methods.
+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.
 
 </td>
 <td>
@@ -1179,11 +1177,83 @@ No
 </td>
 </tr>
 <tr>
-<td>Source IP address:</td>
+<td>Source address type</td>
+<td>
+        
+<i>
+[Only for HTTP Request with HTTPClient implementation]
+</i>
+ 
+<br>
+
+
+        To distinguish the source address value, select the type of these:
+        
+<ul>
+
+        
+<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>
+
+        
+</ul>
+
+        
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>Source address field</td>
 <td>
-        [Only for HTTP Request HTTPClient] 
+        
+<i>
+[Only for HTTP Request with HTTPClient implementation]
+</i>
+ 
+<br>
+
+
         Override the default local IP address for this sample.
-        The JMeter host must have multiple IP addresses (i.e. IP aliases or network interfaces). 
+        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
@@ -1281,14 +1351,14 @@ To send a CRLF after the last line of da
 (This cannot be seen, except by noting whether the cursor can be placed on the subsequent line.)
 
 </p>
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='902' height='421' src="../images/screenshots/http-request-raw-single-parameter.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='902' height='421' src="../images/screenshots/http-request-raw-single-parameter.png"/><br>
 <font size="-1">Figure 1 - HTTP Request with one unnamed parameter
 </font></td></tr></table></p>
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='908' height='212' src="../images/screenshots/http-request-confirm-raw-body.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='908' height='212' src="../images/screenshots/http-request-confirm-raw-body.png"/><br>
 <font size="-1">Figure 2 - Confirm dialog to switch
 </font></td></tr></table></p>
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='905' height='423' src="../images/screenshots/http-request-raw-body.png"><br>
-<font size="-1">Figure 3 - HTTP Request using RAW Post body
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='905' height='423' src="../images/screenshots/http-request-raw-body.png"/><br>
+<font size="-1">Figure 3 - HTTP Request using Body Data
 </font></td></tr></table></p>
 <p>
 
@@ -1368,7 +1438,7 @@ See jmeter.properties file for the detai
  i.e. only text/html responses will be scanned
 </p>
 <b>
-Emulating slow connections (HttpClient only):
+Emulating slow connections:
 </b>
 <br>
 
@@ -1477,7 +1547,7 @@ httpclient3.retrycount=3
 </li>
 <li><a href="../usermanual/component_reference.html#HTML_Link_Parser">HTML Link Parser</a>
 </li>
-<li><a href="../usermanual/component_reference.html#HTTP_Proxy_Server">HTTP Proxy Server</a>
+<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>
@@ -1558,7 +1628,7 @@ Note:
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='466' height='334' src="../images/screenshots/jdbctest/jdbc-request.png"></div>
+<div align="center"><img width='466' height='334' src="../images/screenshots/jdbctest/jdbc-request.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="JDBC_Request_parms"/>
@@ -1575,9 +1645,9 @@ No
 <tr>
 <td>Variable Name</td>
 <td>
-		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.
-		
+        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.
+        
 </td>
 <td>
 Yes
@@ -1586,63 +1656,75 @@ Yes
 <tr>
 <td>Query Type</td>
 <td>Set this according to the statement type:
-		    
+            
 <ul>
 
-		    
+            
 <li>
 Select Statement
 </li>
 
-		    
+            
 <li>
 Update Statement - use this for Inserts as well
 </li>
 
-		    
+            
 <li>
 Callable Statement
 </li>
 
-		    
+            
 <li>
 Prepared Select Statement
 </li>
 
-		    
+            
 <li>
 Prepared Update Statement - use this for Inserts as well
 </li>
 
-		    
+            
 <li>
 Commit
 </li>
 
-		    
+            
 <li>
 Rollback
 </li>
 
-		    
+            
 <li>
 Autocommit(false)
 </li>
 
-		    
+            
 <li>
 Autocommit(true)
 </li>
 
-		    
+            
 <li>
 Edit - this should be a variable reference that evaluates to one of the above
 </li>
 
-		    
+            
 </ul>
 
-		
+            
+<p>
+<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
+<tr><td>
+            When "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" types are selected, a Statement Cache per connection is used by JDBC Request. 
+            It stores by default up to 100 PreparedStatements per connection, this can impact your database (Open Cursors). 
+            This can be changed by defining the property "jdbcsampler.nullmarker".
+            
+</td></tr>
+</table>
+</p>
+
+        
 </td>
 <td>
 Yes
@@ -1875,7 +1957,7 @@ The fields allow variables to be used, s
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='563' height='347' src="../images/screenshots/java_request.png"></div>
+<div align="center"><img width='563' height='347' src="../images/screenshots/java_request.png"/></div>
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>Since JMeter 2.8, if the method teardownTest is not overriden by a subclass of AbstractJavaSamplerClient, its teardownTest method will not be called.
@@ -2084,7 +2166,7 @@ Or set Content-Length to -1 to force chu
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='426' height='276' src="../images/screenshots/soap_sampler.png"></div>
+<div align="center"><img width='426' height='276' src="../images/screenshots/soap_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="SOAP/XML-RPC_Request_parms"/>
@@ -2234,7 +2316,7 @@ If this is zero, then the request is mar
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='943' height='648' src="../images/screenshots/webservice_sampler.png"></div>
+<div align="center"><img width='943' height='648' src="../images/screenshots/webservice_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="WebService(SOAP)_Request_(DEPRECATED)_parms"/>
@@ -2422,7 +2504,7 @@ If you are going to send multiple reques
  also using for Login and password.
   
 <p><b>Control Panel</b></p>
-<div align="center"><img width='621' height='462' src="../images/screenshots/ldap_request.png"></div>
+<div align="center"><img width='621' height='462' src="../images/screenshots/ldap_request.png"/></div>
 <p>
 There are two ways to create test cases for testing an LDAP Server.
 </p>
@@ -2485,7 +2567,7 @@ Inbuilt test :
                 
 <p>
 This will create a pre-defined entry first, then will modify the
-                  created	entry in the LDAP Server.And calculate the execution time. After
+                  created entry in the LDAP Server.And calculate the execution time. After
                   execution
                   of the test, the created entry will be deleted from the LDAP Server.
 </p>
@@ -2702,7 +2784,7 @@ If you are going to send multiple reques
 </p>
  
 <p><b>Control Panel</b></p>
-<div align="center"><img width='619' height='371' src="../images/screenshots/ldapext_request.png"></div>
+<div align="center"><img width='619' height='371' src="../images/screenshots/ldapext_request.png"/></div>
 <p>
 There are nine test operations defined. These operations are given below:
 </p>
@@ -2830,11 +2912,11 @@ Single bind/unbind
 </b>
 </li>
 
-		
+        
 <p>
  This is a combination of the LDAP "bind" and "unbind" operations.
-		It can be used for an authentication request/password check for any user. It will open an new session, just to
-		check the validity of the user/password combination, and end the session again.
+        It can be used for an authentication request/password check for any user. It will open an new session, just to
+        check the validity of the user/password combination, and end the session again.
 </p>
 
     
@@ -2870,7 +2952,7 @@ No
 </table>
 </p>
 
-		
+
  
 <br>
 
@@ -3356,7 +3438,7 @@ StandardGenerator and TCLogParser.
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='613' height='318' src="../images/screenshots/accesslogsampler.png"></div>
+<div align="center"><img width='613' height='318' src="../images/screenshots/accesslogsampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Access_Log_Sampler_parms"/>
@@ -3448,7 +3530,7 @@ to configure this via the GUI, so it can
 </td></tr>
 <tr><td>
 <p>
-This sampler allows you to write a sampler using the BeanShell scripting language.		
+This sampler allows you to write a sampler using the BeanShell scripting language.
 
 </p>
 <p>
@@ -3481,9 +3563,9 @@ The interrupt() method can be defined in
 
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='1034' height='505' src="../images/screenshots/beanshellsampler.png"></div>
+<div align="center"><img width='848' height='566' src="../images/screenshots/beanshellsampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="BeanShell_Sampler_parms"/>
@@ -3519,21 +3601,21 @@ Yes
 <td>Parameters to pass to the BeanShell script.
     This is intended for use with script files; for scripts defined in the GUI, you can use whatever
     variable and function references you need within the script itself.
-	The parameters are stored in the following variables:
-	
+    The parameters are stored in the following variables:
+    
 <ul>
 
-		
+        
 <li>
 Parameters - string containing the parameters as a single variable
 </li>
 
-	    
+        
 <li>
 bsh.args - String array containing parameters, split on white-space
 </li>
 
-	
+    
 </ul>
 </td>
 <td>
@@ -3598,64 +3680,64 @@ BeanShell does not currently support Jav
 </p>
 <p>
 Before invoking the script, some variables are set up in the BeanShell interpreter:
-			
+            
 </p>
 <p>
 The contents of the Parameters field is put into the variable "Parameters".
-			The string is also split into separate tokens using a single space as the separator, and the resulting list
-			is stored in the String array bsh.args.
+            The string is also split into separate tokens using a single space as the separator, and the resulting list
+            is stored in the String array bsh.args.
 </p>
 <p>
 The full list of BeanShell variables that is set up is as follows:
 </p>
 <ul>
 
-		
+        
 <li>
 log - the Logger
 </li>
 
-		
+        
 <li>
 Label - the Sampler label
 </li>
 
-		
+        
 <li>
 FileName - the file name, if any
 </li>
 
-		
+        
 <li>
 Parameters - text from the Parameters field
 </li>
 
-		
+        
 <li>
 bsh.args - the parameters, split as described above
 </li>
 
-		
+        
 <li>
 SampleResult - pointer to the current SampleResult
 </li>
 
-			
+            
 <li>
 ResponseCode = 200
 </li>
 
-			
+            
 <li>
 ResponseMessage = "OK"
 </li>
 
-			
+            
 <li>
 IsSuccess = true
 </li>
 
-			
+            
 <li>
 ctx - 
 <a href="../api/org/apache/jmeter/threads/JMeterContext.html">
@@ -3663,7 +3745,7 @@ JMeterContext
 </a>
 </li>
 
-			
+            
 <li>
 vars - 
 <a href="../api/org/apache/jmeter/threads/JMeterVariables.html">
@@ -3677,11 +3759,11 @@ JMeterVariables
 props - JMeterProperties (class java.util.Properties)- e.g. props.get("START.HMS"); props.put("PROP1","1234");
 </li>
 
-		
+        
 </ul>
 <p>
 When the script completes, control is returned to the Sampler, and it copies the contents
-			of the following script variables into the corresponding variables in the 
+            of the following script variables into the corresponding variables in the 
 <a href="../api/org/apache/jmeter/samplers/SampleResult.html">
 SampleResult
 </a>
@@ -3689,37 +3771,37 @@ SampleResult
 </p>
 <ul>
 
-			
+            
 <li>
 ResponseCode - for example 200
 </li>
 
-			
+            
 <li>
 ResponseMessage - for example "OK"
 </li>
 
-			
+            
 <li>
 IsSuccess - true/false
 </li>
 
-			
+            
 </ul>
 <p>
 The SampleResult ResponseData is set from the return value of the script.
-			Since version 2.1.2, if the script returns null, it can set the response directly, by using the method 
-			SampleResult.setResponseData(data), where data is either a String or a byte array.
-			The data type defaults to "text", but can be set to binary by using the method
-			SampleResult.setDataType(SampleResult.BINARY).
-			
+            Since version 2.1.2, if the script returns null, it can set the response directly, by using the method 
+            SampleResult.setResponseData(data), where data is either a String or a byte array.
+            The data type defaults to "text", but can be set to binary by using the method
+            SampleResult.setDataType(SampleResult.BINARY).
+            
 </p>
 <p>
 The SampleResult variable gives the script full access to all the fields and
-				methods in the SampleResult. For example, the script has access to the methods
-				setStopThread(boolean) and setStopTest(boolean).
-				
-				Here is a simple (not very useful!) example script:
+                methods in the SampleResult. For example, the script has access to the methods
+                setStopThread(boolean) and setStopTest(boolean).
+
+                Here is a simple (not very useful!) example script:
 </p>
 <pre>
 
@@ -3782,29 +3864,41 @@ This sampler allows you to write a sampl
 <br>
 
 
-		See the 
+        See the 
 <a href="http://commons.apache.org/bsf/index.html">
 Apache Bean Scripting Framework
 </a>
 
-		website for details of the languages supported.
-		You may need to download the appropriate jars for the language; they should be put in the JMeter 
+        website for details of the languages supported.
+        You may need to download the appropriate jars for the language; they should be put in the JMeter 
 <b>
 lib
 </b>
  directory.
-		
+        
+</p>
+
+        
+<p>
+<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
+<tr><td>
+        The BSF API has been largely superseded by JSR-223, which is included in Java 1.6 onwards.
+        Most scripting languages now include support for JSR-223; please use the JSR223 Sampler instead.
+        The BSF Sampler should only be needed for supporting legacy languages/test scripts.
+        
+</td></tr>
+</table>
 </p>
 
-		
+        
 <p>
 By default, JMeter supports the following languages:
 </p>
 
-		
+        
 <ul>
 
-		
+        
 <li>
 javascript
 </li>
@@ -3819,7 +3913,7 @@ jexl (JMeter version 2.3.2 and later)
 xslt
 </li>
 
-		
+        
 </ul>
 
         
@@ -3830,9 +3924,9 @@ xslt
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='865' height='412' src="../images/screenshots/bsfsampler.png"></div>
+<div align="center"><img width='848' height='590' src="../images/screenshots/bsfsampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="BSF_Sampler_parms"/>
@@ -3849,10 +3943,10 @@ No
 <tr>
 <td>Scripting Language</td>
 <td>Name of the BSF scripting language to be used.
-	N.B. Not all the languages in the drop-down list are supported by default.
-	The following are supported: jexl, javascript, xslt.
-	Others may be available if the appropriate jar is installed in the JMeter lib directory.
-	
+    N.B. Not all the languages in the drop-down list are supported by default.
+    The following are supported: jexl, javascript, xslt.
+    Others may be available if the appropriate jar is installed in the JMeter lib directory.
+    
 </td>
 <td>
 Yes
@@ -4045,7 +4139,13 @@ SampleResult.setResponseMessage("message
 <p>
 
 The JSR223 Sampler allows JSR223 script code to be used to perform a sample.
-JSR223 related elements have a feature that increases highly their performances.
+
+</p>
+
+
+<p>
+
+The JSR223 test elements have a feature (compilation) that can significantly increase performance.
 To benefit from this feature:
 
 <ul>
@@ -4057,7 +4157,7 @@ Use Script files instead of inlining the
 
     
 <li>
-Use Script Text and fill in script cache key property, ensure it is unique accross Test Plan as JMeter will use it to cache result of compilation.
+Or Use Script Text and fill in script cache key property, ensure it is unique across Test Plan as JMeter will use it to cache result of compilation.
     
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
@@ -4067,6 +4167,14 @@ Use Script Text and fill in script cache
 </p>
 
     
+<p>
+<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
+<tr><td>To benefit fomr Caching and compilation, language engine used for scripting must implement JSR223 Compilable interface (Groovy is one of these, java, beanshell and javascript are not)
+</td></tr>
+</table>
+</p>
+
+    
 </li>
 
 
@@ -4109,6 +4217,8 @@ Since JMeter 2.8, JSR223 Test Elements u
 </p>
 
 
+<p><b>Control Panel</b></p>
+<div align="center"><img width='846' height='630' src="../images/screenshots/jsr223-sampler.png"/></div>
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>
@@ -4136,78 +4246,78 @@ e.g. props.get("START.HMS"); props.put("
 </td></tr>
 <tr><td>
 
-		
+        
 <p>
 
-		The TCP Sampler opens a TCP/IP connection to the specified server.
-		It then sends the text, and waits for a response.
-		
+        The TCP Sampler opens a TCP/IP connection to the specified server.
+        It then sends the text, and waits for a response.
+        
 <br>
 
 
-		If "Re-use connection" is selected, connections are shared between Samplers in the same thread,
-		provided that the exact same host name string and port are used. 
-		Different hosts/port combinations will use different connections, as will different threads. 
-		If both of "Re-use connection" and "Close connetion" are selected, the socket will be closed after running the sampler. 
-		On the next sampler, another socket will be created. You may want to close a socket at the end of each thread loop.
-		
+        If "Re-use connection" is selected, connections are shared between Samplers in the same thread,
+        provided that the exact same host name string and port are used. 
+        Different hosts/port combinations will use different connections, as will different threads. 
+        If both of "Re-use connection" and "Close connection" are selected, the socket will be closed after running the sampler. 
+        On the next sampler, another socket will be created. You may want to close a socket at the end of each thread loop.
+        
 <br>
 
 
-		If an error is detected - or "Re-use connection" is not selected - the socket is closed. 
-		Another socket will be reopened on the next sample.
-		
+        If an error is detected - or "Re-use connection" is not selected - the socket is closed. 
+        Another socket will be reopened on the next sample.
+        
 <br>
 
 
-		The following properties can be used to control its operation:
-		
+        The following properties can be used to control its operation:
+        
 </p>
 
-		
+        
 <ul>
 
-			
+            
 <li>
 tcp.status.prefix - text that precedes a status number
 </li>
 
-			
+            
 <li>
 tcp.status.suffix - text that follows a status number
 </li>
 
-			
+            
 <li>
 tcp.status.properties - name of property file to convert status codes to messages
 </li>
 
-			
+            
 <li>
 tcp.handler - Name of TCP Handler class (default TCPClientImpl) - only used if not specified on the GUI
 </li>
 
-		
+        
 </ul>
 
-		The class that handles the connection is defined by the GUI, failing that the property tcp.handler. 
-		If not found, the class is then searched for in the package org.apache.jmeter.protocol.tcp.sampler.
-		
+        The class that handles the connection is defined by the GUI, failing that the property tcp.handler. 
+        If not found, the class is then searched for in the package org.apache.jmeter.protocol.tcp.sampler.
+        
 <p>
 
-		Users can provide their own implementation.
-		The class must extend org.apache.jmeter.protocol.tcp.sampler.TCPClient.
-		
+        Users can provide their own implementation.
+        The class must extend org.apache.jmeter.protocol.tcp.sampler.TCPClient.
+        
 </p>
 
-		
+        
 <p>
 
-		The following implementations are currently provided.
-		
+        The following implementations are currently provided.
+        
 <ul>
 
-		
+        
 <li>
 TCPClientImpl
 </li>
@@ -4222,14 +4332,14 @@ BinaryTCPClientImpl
 LengthPrefixedBinaryTCPClientImpl
 </li>
 
-		
+        
 </ul>
 
-		The implementations behave as follows:
-		
+        The implementations behave as follows:
+        
 </p>
 
-		
+        
 <p>
 <b>
 TCPClientImpl
@@ -4237,7 +4347,7 @@ TCPClientImpl
 <br>
 
 
-		This implementation is fairly basic.
+        This implementation is fairly basic.
         When reading the response, it reads until the end of line byte, if this is defined
         by setting the property 
 <b>
@@ -4298,44 +4408,44 @@ Timeout handling
         If the timeout is set, the read will be terminated when this expires. 
         So if you are using an eolByte/eomByte, make sure the timeout is sufficiently long,
         otherwise the read will be terminated early.    
-		
+        
 </p>
 
-		
+        
 <p>
 <b>
 Response handling
 </b>
 
-		
+        
 <br>
 
 
-		If tcp.status.prefix is defined, then the response message is searched for the text following
-		that up to the suffix. If any such text is found, it is used to set the response code.
-		The response message is then fetched from the properties file (if provided).
-		
+        If tcp.status.prefix is defined, then the response message is searched for the text following
+        that up to the suffix. If any such text is found, it is used to set the response code.
+        The response message is then fetched from the properties file (if provided).
+        
 <br>
 
 
-		For example, if the prefix = "[" and the suffix = "]", then the following repsonse:
-		
+        For example, if the prefix = "[" and the suffix = "]", then the following repsonse:
+        
 <br>
 
 
-		[J28] XI123,23,GBP,CR
-		
+        [J28] XI123,23,GBP,CR
+        
 <br>
 
 
-		would have the response code J28.
-		
+        would have the response code J28.
+        
 <br>
 
 
-		Response codes in the range "400"-"499" and "500"-"599" are currently regarded as failures;
-		all others are successful. [This needs to be made configurable!]
-		
+        Response codes in the range "400"-"499" and "500"-"599" are currently regarded as failures;
+        all others are successful. [This needs to be made configurable!]
+        
 </p>
 
 
@@ -4346,14 +4456,14 @@ Response handling
 </table>
 </p>
 
-		
+        
 <br>
 
 
-		Sockets are disconnected at the end of a test run.
+        Sockets are disconnected at the end of a test run.
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='826' height='336' src="../images/screenshots/tcpsampler.png"></div>
+<div align="center"><img width='827' height='521' src="../images/screenshots/tcpsampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="TCP_Sampler_parms"/>
@@ -4494,16 +4604,16 @@ No
 </table>
 </p>
 
-		
+        
 <p>
 
-		JMS Publisher will publish messages to a given destination (topic/queue). For those not
-		familiar with JMS, it is the J2EE specification for messaging. There are
-		numerous JMS servers on the market and several open source options.
-		
+        JMS Publisher will publish messages to a given destination (topic/queue). For those not
+        familiar with JMS, it is the J2EE specification for messaging. There are
+        numerous JMS servers on the market and several open source options.
+        
 </p>
 
-		
+        
 <br>
 
 
@@ -4515,9 +4625,9 @@ No
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='790' height='702' src="../images/screenshots/jmspublisher.png"></div>
+<div align="center"><img width='790' height='702' src="../images/screenshots/jmspublisher.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="JMS_Publisher_parms"/>
@@ -4877,16 +4987,16 @@ dynamicTopics/TOPICNAME
 </table>
 </p>
 
-		
+        
 <p>
 
-		JMS Publisher will subscribe to messages in a given destination (topic or queue). For those not
-		familiar with JMS, it is the J2EE specification for messaging. There are
-		numerous JMS servers on the market and several open source options.
-		
+        JMS Publisher will subscribe to messages in a given destination (topic or queue). For those not
+        familiar with JMS, it is the J2EE specification for messaging. There are
+        numerous JMS servers on the market and several open source options.
+        
 </p>
 
-		
+        
 <br>
 
 
@@ -4898,9 +5008,9 @@ dynamicTopics/TOPICNAME
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='709' height='498' src="../images/screenshots/jmssubscriber.png"></div>
+<div align="center"><img width='709' height='498' src="../images/screenshots/jmssubscriber.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="JMS_Subscriber_parms"/>
@@ -5121,18 +5231,18 @@ completed, so the net effect was similar
 </table>
 </p>
 
-		
+        
 <p>
 
-		This sampler sends and optionally receives JMS Messages through point-to-point connections (queues).
+        This sampler sends and optionally receives JMS Messages through point-to-point connections (queues).
         It is different from pub/sub messages and is generally used for handling transactions.
-		
+        
 </p>
 
-		
+        
 <p>
 
-		
+        
 <b>
 Request Only
 </b>
@@ -5147,24 +5257,24 @@ Request Response
  will be used when you want to test response time of a JMS service that processes messages sent to the Request Queue as this mode will wait for the response on the Reply queue sent by this service.
 <br>
 
-		
-		
+
+        
 </p>
 
-		
+        
 <p>
 
-		Versions of JMeter after 2.3.2 use the properties java.naming.security.[principal|credentials] - if present -
-		when creating the Queue Connection. If this behaviour is not desired, set the JMeter property
-		
+        Versions of JMeter after 2.3.2 use the properties java.naming.security.[principal|credentials] - if present -
+        when creating the Queue Connection. If this behaviour is not desired, set the JMeter property
+        
 <b>
 JMSSampler.useSecurity.properties=false
 </b>
 
-		
+        
 </p>
 
-		
+        
 <br>
 
 
@@ -5176,9 +5286,9 @@ JMSSampler.useSecurity.properties=false
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='746' height='662' src="../images/screenshots/jms/JMS_Point-to-Point.png"></div>
+<div align="center"><img width='746' height='662' src="../images/screenshots/jms/JMS_Point-to-Point.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="JMS_Point-to-Point_parms"/>
@@ -5519,7 +5629,7 @@ Here are some general guidelines for wri
 5. Each sampler creates an instance of the test class, so write your test so the setup happens in oneTimeSetUp and oneTimeTearDown.
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='397' height='536' src="../images/screenshots/junit_sampler.png"></div>
+<div align="center"><img width='397' height='536' src="../images/screenshots/junit_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="JUnit_Request_parms"/>
@@ -5719,7 +5829,7 @@ The Mail Reader Sampler can read (and op
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='547' height='409' src="../images/screenshots/mailreader_sampler.png"></div>
+<div align="center"><img width='547' height='409' src="../images/screenshots/mailreader_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Mail_Reader_Sampler_parms"/>
@@ -5985,7 +6095,7 @@ jmeterengine.threadstop.wait
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='467' height='184' src="../images/screenshots/test_action.png"></div>
+<div align="center"><img width='467' height='184' src="../images/screenshots/test_action.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Test_Action_parms"/>
@@ -6073,7 +6183,7 @@ Use a local truststore. With this option
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='713' height='802' src="../images/screenshots/smtp_sampler.png"></div>
+<div align="center"><img width='713' height='802' src="../images/screenshots/smtp_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="SMTP_Sampler_parms"/>
@@ -6393,7 +6503,7 @@ Param 3:   C:\TEMP
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='783' height='593' src="../images/screenshots/os_process_sampler.png"></div>
+<div align="center"><img width='683' height='582' src="../images/screenshots/os_process_sampler.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="OS_Process_Sampler_parms"/>
@@ -6457,65 +6567,210 @@ If omitted, output is captured and retur
 No
 </td>
 </tr>
+<tr>
+<td>Check Return Code</td>
+<td>If checked, sampler will compare return code with Expected Return Code.
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>Expected Return Code</td>
+<td>Expected return code for System Call, required if "Check Return Code" is checked.
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>Timeout</td>
+<td>Timeout for command in milliseconds, defaults to 0, which means NO timeout.
+</td>
+<td>
+No
+</td>
+</tr>
 </table>
 </p>
-<property name="Check Return Code" required="No">
-If checked, sampler will compare return code with Expected Return Code.
-</property>
-<property name="Expected Return Code" required="No">
-Expected return code for System Call, required if "Check Return Code" is checked.
-</property>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
 <hr>
-<a href="#">
-^
-</a>
-</blockquote>
-</p>
-</td></tr>
-<tr><td><br></td></tr>
-</table>
-<table border="0" cellspacing="0" cellpadding="2" width="100%">
-<tr><td bgcolor="#525D76">
-<font color="#ffffff" face="arial,helvetica,sanserif">
-<a name="logic_controllers"><strong>18.2 Logic Controllers</strong></a><a class="sectionlink" href="#logic_controllers" title="Link to here">&para;</a></font>
-</td></tr>
-<tr><td>
-<blockquote>
-<description>
-
-	
-<br>
-Logic Controllers determine the order in which Samplers are processed.
-
-
-
-</description>
 <table border="0" cellspacing="0" cellpadding="2">
 <tr><td>
 <font face="arial,helvetica,sanserif">
 <h3>
-<a name="Simple_Controller">18.2.1 Simple Controller</a>
-<a class="sectionlink" href="#Simple_Controller" title="Link to here">&para;</a></h3>
+<a name="MongoDB_Script">18.1.21 MongoDB Script</a>
+<a class="sectionlink" href="#MongoDB_Script" title="Link to here">&para;</a></h3>
 </font>
 </td></tr>
 <tr><td>
+<center>
+<h2>
+(Alpha Code)
+</h2>
+</center>
+<p>
+This sampler lets you send an Request to a MongoDB.
+</p>
 
 
 <p>
-The Simple Logic Controller lets  you organize your Samplers and other
-Logic Controllers.  Unlike other Logic Controllers, this controller provides no functionality beyond that of a
-storage device.
+Before using this you need to set up a
+
+<a href="../usermanual/component_reference.html#MongoDB_Source_Config">MongoDB Source Config</a>
+ Configuration element
+
 </p>
 
 
-<p><b>Control Panel</b></p>
-<div align="center"><img width='330' height='77' src="../images/screenshots/logic-controller/simple-controller.png"></div>
 <p>
-<b>Parameters</b>
-<a name="Simple_Controller_parms"/>
+<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
+<tr><td>This Element currently uses com.mongodb.DB#eval which takes a global write lock causing a performance impact on the database, see 
+<a href="http://docs.mongodb.org/manual/reference/method/db.eval/">
+db.eval()
+</a>
+. 
+So it is better to avoid using this element for load testing and use JSR223+Groovy scripting using 
+<a href="../api/org/apache/jmeter/protocol/mongodb/config/MongoDBHolder.html">
+MongoDBHolder
+</a>
+ instead.
+MongoDB Script is more suitable for functionnal testing or test setup (setup/teardown threads)
+</td></tr>
+</table>
+</p>
+
+
+<p><b>Control Panel</b></p>
+<div align="center"><img width='847' height='635' src="../images/screenshots/mongodb-script.png"/></div>
+<p>
+<b>Parameters</b>
+<a name="MongoDB_Script_parms"/>
+<a class="sectionlink" href="#MongoDB_Script_parms" title="Link to here">&para;</a><table border="1" cellspacing="0" cellpadding="2">
+<tr><th>Attribute</th><th>Description</th><th>Required</th></tr>
+<tr>
+<td>Name</td>
+<td>Descriptive name for this sampler that is shown in the tree.
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>MongoDB Source</td>
+<td>
+        Name of the JMeter variable that the MongoDB connection is bound to.
+        This must agree with the 'MongoDB Source' field of a MongoDB Source Config.
+        
+</td>
+<td>
+Yes
+</td>
+</tr>
+<tr>
+<td>Database Name</td>
+<td>Database Name, will be used in your script
+        
+</td>
+<td>
+Yes
+</td>
+</tr>
+<tr>
+<td>Username</td>
+<td>
+        
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>Password</td>
+<td>
+        
+</td>
+<td>
+No
+</td>
+</tr>
+<tr>
+<td>Script</td>
+<td>
+        Mongo script as it would be used in MongoDB shell
+        
+</td>
+<td>
+Yes
+</td>
+</tr>
+</table>
+</p>
+<p><b>See Also:</b>
+<ul>
+<li><a href="../usermanual/component_reference.html#MongoDB_Source_Config">MongoDB Source Config</a>
+</li>
+</ul>
+</p>
+<p>
+<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
+<tr><td>Ensure Variable Name is unique accross Test Plan.
+</td></tr>
+</table>
+</p>
+</td></tr>
+<tr><td><br></td></tr>
+</table>
+<hr>
+<a href="#">
+^
+</a>
+</blockquote>
+</p>
+</td></tr>
+<tr><td><br></td></tr>
+</table>
+<table border="0" cellspacing="0" cellpadding="2" width="100%">
+<tr><td bgcolor="#525D76">
+<font color="#ffffff" face="arial,helvetica,sanserif">
+<a name="logic_controllers"><strong>18.2 Logic Controllers</strong></a><a class="sectionlink" href="#logic_controllers" title="Link to here">&para;</a></font>
+</td></tr>
+<tr><td>
+<blockquote>
+<description>
+
+    
+<br>
+Logic Controllers determine the order in which Samplers are processed.
+
+
+
+</description>
+<table border="0" cellspacing="0" cellpadding="2">
+<tr><td>
+<font face="arial,helvetica,sanserif">
+<h3>
+<a name="Simple_Controller">18.2.1 Simple Controller</a>
+<a class="sectionlink" href="#Simple_Controller" title="Link to here">&para;</a></h3>
+</font>
+</td></tr>
+<tr><td>
+
+
+<p>
+The Simple Logic Controller lets  you organize your Samplers and other
+Logic Controllers.  Unlike other Logic Controllers, this controller provides no functionality beyond that of a
+storage device.
+</p>
+
+
+<p><b>Control Panel</b></p>
+<div align="center"><img width='330' height='77' src="../images/screenshots/logic-controller/simple-controller.png"/></div>
+<p>
+<b>Parameters</b>
+<a name="Simple_Controller_parms"/>
 <a class="sectionlink" href="#Simple_Controller_parms" title="Link to here">&para;</a><table border="1" cellspacing="0" cellpadding="2">
 <tr><th>Attribute</th><th>Description</th><th>Required</th></tr>
 <tr>
@@ -6547,7 +6802,7 @@ is configured to store the results in a 
 </p>
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='546' height='222' src="../images/screenshots/logic-controller/simple-example.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='546' height='222' src="../images/screenshots/logic-controller/simple-example.png"/><br>
 <font size="-1">Figure 6 Simple Controller Example
 </font></td></tr></table></p>
 
@@ -6575,7 +6830,7 @@ count to three, JMeter will send a total
 
 </p>
 <p><b>Control Panel</b></p>
-<div align="center"><img width='326' height='114' src="../images/screenshots/logic-controller/loop-controller.png"></div>
+<div align="center"><img width='326' height='114' src="../images/screenshots/logic-controller/loop-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Loop_Controller_parms"/>
@@ -6639,7 +6894,7 @@ only once and sends another HTTP Request
 
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='548' height='160' src="../images/screenshots/logic-controller/loop-example.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='548' height='160' src="../images/screenshots/logic-controller/loop-example.png"/><br>
 <font size="-1">Figure 4 - Loop Controller Example
 </font></td></tr></table></p>
 
@@ -6701,7 +6956,7 @@ to login once to establish a session.
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='330' height='78' src="../images/screenshots/logic-controller/once-only-controller.png"></div>
+<div align="center"><img width='330' height='78' src="../images/screenshots/logic-controller/once-only-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Once_Only_Controller_parms"/>
@@ -6733,7 +6988,7 @@ sends one request to the Home Page becau
 </p>
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='348' height='131' src="../images/screenshots/logic-controller/once-only-example.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='348' height='131' src="../images/screenshots/logic-controller/once-only-example.png"/><br>
 <font size="-1">Figure 5. Once Only Controller Example
 </font></td></tr></table></p>
 
@@ -6772,7 +7027,7 @@ other controllers for each loop iteratio
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='329' height='104' src="../images/screenshots/logic-controller/interleave-controller.png"></div>
+<div align="center"><img width='329' height='104' src="../images/screenshots/logic-controller/interleave-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Interleave_Controller_parms"/>
@@ -6812,7 +7067,7 @@ requests per thread. See the table below
 
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='336' height='153' src="../images/screenshots/logic-controller/interleave.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='336' height='153' src="../images/screenshots/logic-controller/interleave.png"/><br>
 <font size="-1">Figure 1 - Interleave Controller Example 1
 </font></td></tr></table></p>
 
@@ -6973,7 +7228,7 @@ two Interleave Controllers inside of it.
 
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='207' height='249' src="../images/screenshots/logic-controller/interleave2.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='207' height='249' src="../images/screenshots/logic-controller/interleave2.png"/><br>
 <font size="-1">
         Figure 2 - Interleave Controller Example 2
 
@@ -6990,7 +7245,7 @@ Note, the File Reporter is configured to
 
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='204' height='247' src="../images/screenshots/logic-controller/interleave3.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='204' height='247' src="../images/screenshots/logic-controller/interleave3.png"/><br>
 <font size="-1">
         Figure 3 - Interleave Controller Example 3
 
@@ -7035,7 +7290,7 @@ what results any given interaction will 
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='328' height='100' src="../images/screenshots/logic-controller/random-controller.png"></div>
+<div align="center"><img width='328' height='100' src="../images/screenshots/logic-controller/random-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Random_Controller_parms"/>
@@ -7065,15 +7320,15 @@ No
 </td></tr>
 <tr><td>
 
-		
+        
 <p>
 The Random Order Controller is much like a Simple Controller in that it will execute each child
-		 element at most once, but the order of execution of the nodes will be random.
+         element at most once, but the order of execution of the nodes will be random.
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='328' height='76' src="../images/screenshots/randomordercontroller.png"></div>
+<div align="center"><img width='328' height='76' src="../images/screenshots/randomordercontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Random_Order_Controller_parms"/>
@@ -7127,7 +7382,7 @@ setting is reset when a parent Loop Cont
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='329' height='167' src="../images/screenshots/throughput_controller.png"></div>
+<div align="center"><img width='329' height='167' src="../images/screenshots/throughput_controller.png"/></div>
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>The Throughput Controller can yield very complex behavior when combined with other controllers - in particular with interleave or random controllers as parents (also very useful).
@@ -7187,15 +7442,15 @@ No
 </td></tr>
 <tr><td>
 
-		
+        
 <p>
 The Runtime Controller controls how long its children are allowed to run.
-		
+        
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='328' height='100' src="../images/screenshots/runtimecontroller.png"></div>
+<div align="center"><img width='328' height='100' src="../images/screenshots/runtimecontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Runtime_Controller_parms"/>
@@ -7233,56 +7488,56 @@ Yes
 </td></tr>
 <tr><td>
 
-		
+        
 <p>
 The If Controller allows the user to control whether the test elements below it (its children) are run or not.
 </p>
 
-		
+        
 <p>
 
-		Prior to JMeter 2.3RC3, the condition was evaluated for every runnable element contained in the controller.
-		This sometimes caused unexpected behaviour, so 2.3RC3 was changed to evaluate the condition only once on initial entry.
-		However, the original behaviour is also useful, so versions of JMeter after 2.3RC4 have an additional
-		option to select the original behaviour.
-		
+        Prior to JMeter 2.3RC3, the condition was evaluated for every runnable element contained in the controller.
+        This sometimes caused unexpected behaviour, so 2.3RC3 was changed to evaluate the condition only once on initial entry.
+        However, the original behaviour is also useful, so versions of JMeter after 2.3RC4 have an additional
+        option to select the original behaviour.
+        
 </p>
 
-		
+        
 <p>
 
-		Versions of JMeter after 2.3.2 allow the script to be processed as a variable expression, rather than requiring Javascript.
-		It was always possible to use functions and variables in the Javascript condition, so long as they evaluated to "true" or "false";
-		now this can be done without the overhead of using Javascript as well. For example, previously one could use the condition:
-		
+        Versions of JMeter after 2.3.2 allow the script to be processed as a variable expression, rather than requiring Javascript.
+        It was always possible to use functions and variables in the Javascript condition, so long as they evaluated to "true" or "false";
+        now this can be done without the overhead of using Javascript as well. For example, previously one could use the condition:
+        
 <code>
 ${__jexl(${VAR} == 23)}
 </code>
  and this would be evaluated as true/false, the result would then be passed to Javascript
-		which would then return true/false. If the Variable Expression option is selected, then the expression is evaluated
-		and compared with "true", without needing to use Javascript. 
-		Also, variable expressions can return any value, whereas the
-		Javascript condition must return "true"/"false" or an error is logged.
-		
+        which would then return true/false. If the Variable Expression option is selected, then the expression is evaluated
+        and compared with "true", without needing to use Javascript. 
+        Also, variable expressions can return any value, whereas the
+        Javascript condition must return "true"/"false" or an error is logged.
+        
 </p>
 
-		
+        
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>
-		No variables are made available to the script when the condition is interpreted as Javascript.
-		If you need access to such variables, then select "Interpret Condition as Variable Expression?" and use
-		a __javaScript() function call. You can then use the objects "vars", "log", "ctx" etc. in the script.
-		
+        No variables are made available to the script when the condition is interpreted as Javascript.
+        If you need access to such variables, then select "Interpret Condition as Variable Expression?" and use
+        a __javaScript() function call. You can then use the objects "vars", "log", "ctx" etc. in the script.
+        
 </td></tr>
 </table>
 </p>
 
-		
+        
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>
-		To test if a variable is undefined (or null) do the following, suppose var is named myVar, expression will be:
+        To test if a variable is undefined (or null) do the following, suppose var is named myVar, expression will be:
         
 <br>
 
@@ -7311,14 +7566,14 @@ ${__jexl(${VAR} == 23)}
 
 
         to test if a variable is defined and is not null.
-		
+        
 </td></tr>
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='497' height='131' src="../images/screenshots/ifcontroller.png"></div>
+<div align="center"><img width='497' height='131' src="../images/screenshots/ifcontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="If_Controller_parms"/>
@@ -7339,7 +7594,7 @@ No
 Javascript
 </b>
  code that returns "true" or "false",
-	but this can be overriden (see below)
+    but this can be overriden (see below)
 </td>
 <td>
 Yes
@@ -7348,7 +7603,7 @@ Yes
 <tr>
 <td>Interpret Condition as Variable Expression?</td>
 <td>If this is selected, then the condition must be an expression that evaluates to "true" (case is ignored).
-	For example, 
+    For example, 
 <code>
 ${FOUND}
 </code>
@@ -7357,8 +7612,8 @@ ${FOUND}
 ${__jexl(${VAR} > 100)}
 </code>
 .
-	Unlike the Javascript case, the condition is only checked to see if it matches "true" (case is ignored). 
-	
+    Unlike the Javascript case, the condition is only checked to see if it matches "true" (case is ignored). 
+    
 </td>
 <td>
 Yes
@@ -7367,9 +7622,9 @@ Yes
 <tr>
 <td>Evaluate for all children</td>
 <td>
-	Should condition be evaluated for all children?
-	If not checked, then the condition is only evaluated on entry.
-	
+    Should condition be evaluated for all children?
+    If not checked, then the condition is only evaluated on entry.
+    
 </td>
 <td>
 Yes
@@ -7382,29 +7637,29 @@ Yes
 Examples (Javascript):
 </b>
 
-		
+        
 <ul>
 
-			
+            
 <li>
 ${COUNT} < 10
 </li>
 
-			
+            
 <li>
 "${VAR}" == "abcd"
 </li>
 
-			
+            
 <li>
 ${JMeterThread.last_sample_ok} (check if last sample succeeded)
 </li>
 
-		
+        
 </ul>
 
-		If there is an error interpreting the code, the condition is assumed to be false, and a message is logged in jmeter.log.
-	
+        If there is an error interpreting the code, the condition is assumed to be false, and a message is logged in jmeter.log.
+    
 </p>
 <p>
 <b>
@@ -7427,7 +7682,7 @@ ${RESULT}
         
 </ul>
 
-	
+    
 </p>
 </td></tr>
 <tr><td><br></td></tr>
@@ -7512,22 +7767,22 @@ For example:
 
 <ul>
 
-	
+    
 <li>
 ${VAR} - where VAR is set to false by some other test element
 </li>
 
-	
+    
 <li>
 ${__javaScript(${C}==10)}
 </li>
 
-	
+    
 <li>
 ${__javaScript("${VAR2}"=="abcd")}
 </li>
 
-	
+    
 <li>
 ${_P(property)} - where property is set to "false" somewhere else
 </li>
@@ -7535,9 +7790,9 @@ ${_P(property)} - where property is set 
 
 </ul>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='362' height='102' src="../images/screenshots/whilecontroller.png"></div>
+<div align="center"><img width='362' height='102' src="../images/screenshots/whilecontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="While_Controller_parms"/>
@@ -7612,7 +7867,7 @@ If there is no default, then no element 
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='361' height='106' src="../images/screenshots/switchcontroller.png"></div>
+<div align="center"><img width='361' height='106' src="../images/screenshots/switchcontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Switch_Controller_parms"/>
@@ -7656,33 +7911,33 @@ is executed one or more times, where dur
 The input should consist of several variables, each extended with an underscore and a number.
 Each such variable must have a value.
 So for example when the input variable has the name inputVar, the following variables should have been defined:
-		
+        
 <ul>
 
-		
+        
 <li>
 inputVar_1 = wendy
 </li>
 
-		
+        
 <li>
 inputVar_2 = charles
 </li>
 
-		
+        
 <li>
 inputVar_3 = peter
 </li>
 
-		
+        
 <li>
 inputVar_4 = john
 </li>
 
-		
+        
 </ul>
 
-		
+        
 <p>
 Note: the "_" separator is now optional.
 </p>
@@ -7714,7 +7969,7 @@ This would be the case if the Regular Ex
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='380' height='152' src="../images/screenshots/logic-controller/foreach-controller.png"></div>
+<div align="center"><img width='342' height='193' src="../images/screenshots/logic-controller/foreach-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="ForEach_Controller_parms"/>
@@ -7738,7 +7993,7 @@ Yes
 </tr>
 <tr>
 <td>Start index for loop</td>
-<td>Start index (inclusive) for loop over variables
+<td>Start index (exclusive) for loop over variables (first element is at start index + 1)
 </td>
 <td>
 No
@@ -7746,7 +8001,7 @@ No
 </tr>
 <tr>
 <td>End index for loop</td>
-<td>End index (exclusive) for loop over variables
+<td>End index (inclusive) for loop over variables
 </td>
 <td>
 No
@@ -7787,7 +8042,7 @@ only once and sends another HTTP Request
 
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='246' height='154' src="../images/screenshots/logic-controller/foreach-example.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='246' height='154' src="../images/screenshots/logic-controller/foreach-example.png"/><br>
 <font size="-1">Figure 7 - ForEach Controller Example
 </font></td></tr></table></p>
 
@@ -7826,7 +8081,7 @@ so no samples are run by the second ForE
 </p>
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='198' height='253' src="../images/screenshots/logic-controller/foreach-example2.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='198' height='253' src="../images/screenshots/logic-controller/foreach-example2.png"/><br>
 <font size="-1">Figure 8 - ForEach Controller Example 2
 </font></td></tr></table></p>
 
@@ -7934,16 +8189,8 @@ otherwise a duplicate may be accidentall
 </p>
 
 
-<p>
-<table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
-<tr><td>Renaming any element used in ModuleController implies updating Module to Run field
-</td></tr>
-</table>
-</p>
-
-
 <p><b>Control Panel</b></p>
-<div align="center"><img width='504' height='217' src="../images/screenshots/module_controller.png"></div>
+<div align="center"><img width='504' height='217' src="../images/screenshots/module_controller.png"/></div>
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>The Module Controller should not be used with remote testing or non-gui testing in conjunction with Workbench components since the Workbench test elements are not part of test plan .jmx files.  Any such test will fail.
@@ -8053,7 +8300,7 @@ attempts to open the fileName relative t
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='417' height='130' src="../images/screenshots/includecontroller.png"></div>
+<div align="center"><img width='417' height='130' src="../images/screenshots/includecontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Include_Controller_parms"/>
@@ -8083,84 +8330,84 @@ Yes
 </td></tr>
 <tr><td>
 
-	    
+        
 <p>
 
-	    The Transaction Controller generates an additional
-	    sample which measures the overall time taken to perform the nested test elements.
-	    Note that this time by default includes all processing within the controller scope, not just
-	    the samples, this can be changed by unchecking "Include duration of timer and pre-post processors in generated sample".
-	    
+        The Transaction Controller generates an additional
+        sample which measures the overall time taken to perform the nested test elements.
+        Note that this time by default includes all processing within the controller scope, not just
+        the samples, this can be changed by unchecking "Include duration of timer and pre-post processors in generated sample".
+        
 </p>
 
-	    
+        
 <p>
 
-	    For JMeter versions after 2.3, there are two modes of operation
-	    
+        For JMeter versions after 2.3, there are two modes of operation
+        
 <ul>
 
-	    
+        
 <li>
 additional sample is added after the nested samples
 </li>
 
-	    
+        
 <li>
 additional sample is added as a parent of the nested samples
 </li>
 
-	    
+        
 </ul>
 
-	    
+        
 </p>
 
-		
+        
 <p>
 
-		The generated sample time includes all the times for the nested samplers, 
+        The generated sample time includes all the times for the nested samplers, 
 <b>
 and any timers etc.
 </b>
 
-		Depending on the clock resolution, it may be slightly longer than the sum of the individual samplers plus timers.
-		The clock might tick after the controller recorded the start time but before the first sample starts.
-		Similarly at the end.
-		
+        Depending on the clock resolution, it may be slightly longer than the sum of the individual samplers plus timers.
+        The clock might tick after the controller recorded the start time but before the first sample starts.
+        Similarly at the end.
+        
 </p>
 
-		
+        
 <p>
 The generated sample is only regarded as successful if all its sub-samples are successful.
 </p>
 
-		
+        
 <p>
 
-		In parent mode, the individual samples can still be seen in the Tree View Listener,
-		but no longer appear as separate entries in other Listeners.
-		Also, the sub-samples do not appear in CSV log files, but they can be saved to XML files.
-		
+        In parent mode, the individual samples can still be seen in the Tree View Listener,
+        but no longer appear as separate entries in other Listeners.
+        Also, the sub-samples do not appear in CSV log files, but they can be saved to XML files.
+        
 </p>
 
-		
+        
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>
-		In parent mode, Assertions (etc) can be added to the Transaction Controller.
-		However by default they will be applied to both the individual samples and the overall transaction sample.
-		To limit the scope of the Assertions, use a Simple Controller to contain the samples, and add the Assertions
-		to the Simple Controller.
-		Parent mode controllers do not currently properly support nested transaction controllers of either type.
-		
+        In parent mode, Assertions (etc) can be added to the Transaction Controller.
+        However by default they will be applied to both the individual samples and the overall transaction sample.
+        To limit the scope of the Assertions, use a Simple Controller to contain the samples, and add the Assertions
+        to the Simple Controller.
+        Parent mode controllers do not currently properly support nested transaction controllers of either type.
+        
 </td></tr>
 </table>
 </p>
 
-	
+    
 <p><b>Control Panel</b></p>
-<div align="center"><img width='378' height='129' src="../images/screenshots/transactioncontroller.png"></div>
+<div align="center"><img width='378' height='129' src="../images/screenshots/transactioncontroller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Transaction_Controller_parms"/>
@@ -8177,9 +8424,9 @@ Yes
 <tr>
 <td>Generate Parent Sample</td>
 <td>
-	If checked, then the sample is generated as a parent of the other samples,
-	otherwise the sample is generated as an independent sample.
-	
+    If checked, then the sample is generated as a parent of the other samples,
+    otherwise the sample is generated as an independent sample.
+    
 </td>
 <td>
 Yes
@@ -8188,10 +8435,10 @@ Yes
 <tr>
 <td>Include duration of timer and pre-post processors in generated sample</td>
 <td>
-	Whether to include timer, pre- and post-processing delays in the generated sample.
-	Default is true to be compatible with the behaviour in previous versions of JMeter.
-	Setting it to false is a better option to get only response time of the sample.
-	
+    Whether to include timer, pre- and post-processing delays in the generated sample.
+    Default is true to be compatible with the behaviour in previous versions of JMeter.
+    Setting it to false is a better option to get only response time of the sample.
+    
 </td>
 <td>
 Yes
@@ -8218,7 +8465,7 @@ Yes
 The Recording Controller is a place holder indicating where the proxy server should
 record samples to.  During test run, it has no effect, similar to the Simple Controller.  But during
 recording using the 
-<a href="../usermanual/component_reference.html#HTTP_Proxy_Server">HTTP Proxy Server</a>
+<a href="../usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>
 , all recorded samples will by default
 be saved under the Recording Controller.
 </p>
@@ -8226,7 +8473,7 @@ be saved under the Recording Controller.
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='420' height='79' src="../images/screenshots/logic-controller/recording-controller.png"></div>
+<div align="center"><img width='420' height='79' src="../images/screenshots/logic-controller/recording-controller.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Recording_Controller_parms"/>
@@ -8263,7 +8510,7 @@ No
 <blockquote>
 <description>
 
-	
+    
 <br>
 
 
@@ -8490,9 +8737,9 @@ by using the -l command-line flag.
 
 <p>
 
-	The figure below shows an example of the result file configuration panel
+    The figure below shows an example of the result file configuration panel
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='741' height='141' src="../images/screenshots/simpledatawriter.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='741' height='141' src="../images/screenshots/simpledatawriter.png"/><br>
 <font size="-1">Result file configuration panel
 </font></td></tr></table></p>
 
@@ -8589,7 +8836,7 @@ Note that cookies, method and the query 
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='629' height='300' src="../images/screenshots/sample_result_config.png"></div>
+<div align="center"><img width='629' height='300' src="../images/screenshots/sample_result_config.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -8633,7 +8880,7 @@ that factored out delays and JMeter's pr
 number.
 </p>
 <p><b>Control Panel</b></p>
-<div align="center"><img width='915' height='686' src="../images/screenshots/graph_results.png"></div>
+<div align="center"><img width='915' height='686' src="../images/screenshots/graph_results.png"/></div>
 <p>
 The following table briefly describes the items on the graph. 
 Further details on the precise meaning of the statistical terms can be found on the web
@@ -8724,7 +8971,7 @@ This needs to be borne in mind when comp
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='581' height='440' src="../images/screenshots/spline_visualizer.png"></div>
+<div align="center"><img width='581' height='440' src="../images/screenshots/spline_visualizer.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -8761,7 +9008,7 @@ Assertions
 are part of the test plan.
 </p>
 <p><b>Control Panel</b></p>
-<div align="center"><img width='658' height='277' src="../images/screenshots/assertion_results.png"></div>
+<div align="center"><img width='658' height='277' src="../images/screenshots/assertion_results.png"/></div>
 <p><b>See Also:</b>
 <ul>
 <li><a href="../usermanual/component_reference.html#Response_Assertion">Response Assertion</a>
@@ -8822,6 +9069,37 @@ There are several ways to view the respo
 <tr>
 <td bgcolor="#a0ddf0"   valign="top" align="left">
 <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+<b>CSS/JQuery Tester</b>
+</font>
+</td>
+<td bgcolor="#a0ddf0"   valign="top" align="left">
+<font color="#000000" size="-1" face="arial,helvetica,sanserif">
+The <i>CSS/JQuery Tester</i> only works for text responses. It shows the plain text in the upper panel.
+The "Test" button allows the user to apply the CSS/JQuery to the upper panel and the results
+will be displayed in the lower panel.<br />
+The engine of CSS/JQuery expression can be JSoup or Jodd, syntax of these 2 implementation differs slightly.<br />
+For example, the Selector <b>a[class=sectionlink]</b> with attribute <b>href</b> applied to the current JMeter functions page gives the following output:
+<br />
+<pre>
+Match count: 74
+Match[1]=#functions
+Match[2]=#what_can_do
+Match[3]=#where
+Match[4]=#how
+Match[5]=#function_helper
+Match[6]=#functions
+Match[7]=#__regexFunction
+Match[8]=#__regexFunction_parms
+Match[9]=#__counter
+... and so on ...
+</pre>
+<br />
+</font>
+</td>
+</tr>
+<tr>
+<td bgcolor="#a0ddf0"   valign="top" align="left">
+<font color="#000000" size="-1" face="arial,helvetica,sanserif">
 <b>Document</b>
 </font>
 </td>
@@ -9030,40 +9308,40 @@ compiled code must be available to JMete
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='901' height='646' src="../images/screenshots/view_results_tree.png"></div>
+<div align="center"><img width='901' height='646' src="../images/screenshots/view_results_tree.png"/></div>
 <p>
 
-	The Control Panel (above) shows an example of an HTML display.
+    The Control Panel (above) shows an example of an HTML display.
 <br>
 
 
-	Figure 9 (below) shows an example of an XML display.
+    Figure 9 (below) shows an example of an XML display.
 <br>
 
 
-	Figure 9a (below) shows an example of an Regexp tester display.
+    Figure 9a (below) shows an example of an Regexp tester display.
 <br>
 
 
-	Figure 9b (below) shows an example of an Document display.
+    Figure 9b (below) shows an example of an Document display.
 <br>
 
 
-	
+    
 <div align="center">
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='873' height='653' src="../images/screenshots/view_results_tree_xml.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='873' height='653' src="../images/screenshots/view_results_tree_xml.png"/><br>
 <font size="-1">Figure 9 Sample XML display
 </font></td></tr></table></p>
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='858' height='643' src="../images/screenshots/view_results_tree_regex.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='858' height='643' src="../images/screenshots/view_results_tree_regex.png"/><br>
 <font size="-1">Figure 9a Sample Regexp Test display
 </font></td></tr></table></p>
 
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='961' height='623' src="../images/screenshots/view_results_tree_document.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='961' height='623' src="../images/screenshots/view_results_tree_document.png"/><br>
 <font size="-1">Figure 9b Sample Document (here PDF) display
 </font></td></tr></table></p>
 
@@ -9217,15 +9495,15 @@ Times are in milliseconds.
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='784' height='287' src="../images/screenshots/aggregate_report.png"></div>
+<div align="center"><img width='784' height='287' src="../images/screenshots/aggregate_report.png"/></div>
 <div align="center">
 
 
 <p>
 
-	The figure below shows an example of selecting the "Include group name" checkbox.
+    The figure below shows an example of selecting the "Include group name" checkbox.
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='784' height='287' src="../images/screenshots/aggregate_report_grouped.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='784' height='287' src="../images/screenshots/aggregate_report_grouped.png"/><br>
 <font size="-1">Sample "Include group name" display
 </font></td></tr></table></p>
 
@@ -9262,7 +9540,7 @@ If this is selected, then the sub-sample
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='966' height='683' src="../images/screenshots/table_results.png"></div>
+<div align="center"><img width='966' height='683' src="../images/screenshots/table_results.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -9284,7 +9562,7 @@ The fields to save are defined by JMeter
 See the jmeter.properties file for details.
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='741' height='141' src="../images/screenshots/simpledatawriter.png"></div>
+<div align="center"><img width='741' height='141' src="../images/screenshots/simpledatawriter.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -9354,7 +9632,7 @@ Building a Monitor Test Plan
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='762' height='757' src="../images/screenshots/monitor_screencap.png"></div>
+<div align="center"><img width='762' height='757' src="../images/screenshots/monitor_screencap.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -9400,7 +9678,7 @@ know for sure is to use a profiling tool
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='819' height='626' src="../images/screenshots/distribution_graph.png"></div>
+<div align="center"><img width='819' height='626' src="../images/screenshots/distribution_graph.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -9418,7 +9696,7 @@ The aggregate graph is similar to the ag
 difference is the aggregate graph provides an easy way to generate bar graphs and save
 the graph as a PNG file.
 <p><b>Control Panel</b></p>
-<div align="center"><img width='893' height='713' src="../images/screenshots/aggregate_graph.png"></div>
+<div align="center"><img width='893' height='713' src="../images/screenshots/aggregate_graph.png"/></div>
 <div align="center">
 
 
@@ -9426,7 +9704,7 @@ the graph as a PNG file.
 
     The figure below shows an example of settings to draw this graph.
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='900' height='442' src="../images/screenshots/aggregate_graph_settings.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='900' height='442' src="../images/screenshots/aggregate_graph_settings.png"/><br>
 <font size="-1">Aggregate graph settings
 </font></td></tr></table></p>
 
@@ -9600,7 +9878,7 @@ The Response Time Graph draws a line cha
 If many samples exist for the same timestamp, the mean value is displayed.
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='869' height='620' src="../images/screenshots/response_time_graph.png"></div>
+<div align="center"><img width='921' height='616' src="../images/screenshots/response_time_graph.png"/></div>
 <div align="center">
 
 
@@ -9608,7 +9886,7 @@ If many samples exist for the same times
 
     The figure below shows an example of settings to draw this graph.
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='871' height='489' src="../images/screenshots/response_time_graph_settings.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='919' height='481' src="../images/screenshots/response_time_graph_settings.png"/><br>
 <font size="-1">Response time graph settings
 </font></td></tr></table></p>
 
@@ -9710,7 +9988,7 @@ No
 </tr>
 <tr>
 <td>Y Axis settings</td>
-<td>Define a custom maximum value for Y Axis. Show or not the number grouping in Y Axis labels.
+<td>Define a custom maximum value for Y Axis in milli-seconds. Define the increment for the scale (in ms) Show or not the number grouping in Y Axis labels.
 </td>
 <td>
 No
@@ -9744,7 +10022,7 @@ The mailer visualizer can be set up to s
 failed responses from the server.
 </p>
 <p><b>Control Panel</b></p>
-<div align="center"><img width='860' height='403' src="../images/screenshots/mailervisualizer.png"></div>
+<div align="center"><img width='860' height='403' src="../images/screenshots/mailervisualizer.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Mailer_Visualizer_parms"/>
@@ -9919,7 +10197,7 @@ See the file BeanShellListeners.bshrc fo
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='553' height='382' src="../images/screenshots/beanshell_listener.png"></div>
+<div align="center"><img width='844' height='633' src="../images/screenshots/beanshell_listener.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="BeanShell_Listener_parms"/>
@@ -9953,21 +10231,21 @@ Yes
 <tr>
 <td>Parameters</td>
 <td>Parameters to pass to the BeanShell script.
-	The parameters are stored in the following variables:
-	
+    The parameters are stored in the following variables:
+    
 <ul>
 
-		
+        
 <li>
 Parameters - string containing the parameters as a single variable
 </li>
 
-	    
+        
 <li>
 bsh.args - String array containing parameters, split on white-space
 </li>
 
-	
+    
 </ul>
 </td>
 <td>
@@ -10168,15 +10446,15 @@ Times are in milliseconds.
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='784' height='287' src="../images/screenshots/summary_report.png"></div>
+<div align="center"><img width='784' height='287' src="../images/screenshots/summary_report.png"/></div>
 <div align="center">
 
 
 <p>
 
-	The figure below shows an example of selecting the "Include group name" checkbox.
+    The figure below shows an example of selecting the "Include group name" checkbox.
 
-<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='784' height='287' src="../images/screenshots/summary_report_grouped.png"><br>
+<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='784' height='287' src="../images/screenshots/summary_report_grouped.png"/><br>
 <font size="-1">Sample "Include group name" display
 </font></td></tr></table></p>
 
@@ -10230,7 +10508,7 @@ Times are in milliseconds.
 
     
 <p><b>Control Panel</b></p>
-<div align="center"><img width='358' height='225' src="../images/screenshots/savetofile.png"></div>
+<div align="center"><img width='358' height='225' src="../images/screenshots/savetofile.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Save_Responses_to_a_file_parms"/>
@@ -10327,7 +10605,7 @@ The BSF Listener allows BSF script code 
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='736' height='369' src="../images/screenshots/bsf_listener.png"></div>
+<div align="center"><img width='847' height='634' src="../images/screenshots/bsf_listener.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="BSF_Listener_parms"/>
@@ -10589,7 +10867,7 @@ by using suitable labels and adding the 
 
     
 <p><b>Control Panel</b></p>
-<div align="center"><img width='358' height='131' src="../images/screenshots/summary.png"></div>
+<div align="center"><img width='358' height='131' src="../images/screenshots/summary.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Generate_Summary_Results_parms"/>
@@ -10626,7 +10904,7 @@ The Comparison Assertion Visualizer show
  elements.
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='777' height='266' src="../images/screenshots/comparison_assertion_visualizer.png"></div>
+<div align="center"><img width='777' height='266' src="../images/screenshots/comparison_assertion_visualizer.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="Comparison_Assertion_Visualizer_parms"/>
@@ -10664,14 +10942,14 @@ Yes
 <blockquote>
 <description>
 
-	
+    
 <br>
 
 
-	Configuration elements can be used to set up defaults and variables for later use by samplers.
-	Note that these elements are processed at the start of the scope in which they are found, 
-	i.e. before any samplers in the same scope.
-	
+    Configuration elements can be used to set up defaults and variables for later use by samplers.
+    Note that these elements are processed at the start of the scope in which they are found, 
+    i.e. before any samplers in the same scope.
+    
 <br>
 
 
@@ -10690,22 +10968,22 @@ Yes
     
 <p>
 
-	CSV Data Set Config is used to read lines from a file, and split them into variables.
-	It is easier to use than the __CSVRead() and _StringFromFile() functions.
-	It is well suited to handling large numbers of variables, and is also useful for tesing with
-	"random" and unique values.
-	Generating unique random values at run-time is expensive in terms of CPU and memory, so just create the data
-	in advance of the test. If necessary, the "random" data from the file can be used in conjunction with
-	a run-time parameter to create different sets of values from each run - e.g. using concatenation - which is
-	much cheaper than generating everything at run-time.
+    CSV Data Set Config is used to read lines from a file, and split them into variables.
+    It is easier to use than the __CSVRead() and _StringFromFile() functions.
+    It is well suited to handling large numbers of variables, and is also useful for tesing with
+    "random" and unique values.
+    Generating unique random values at run-time is expensive in terms of CPU and memory, so just create the data
+    in advance of the test. If necessary, the "random" data from the file can be used in conjunction with
+    a run-time parameter to create different sets of values from each run - e.g. using concatenation - which is
+    much cheaper than generating everything at run-time.
     
 </p>
 
     
 <p>
 
-	Versions of JMeter after 2.3.1 allow values to be quoted; this allows the value to contain a delimiter.
-	Previously it was necessary to choose a delimiter that was not used in any values.
+    Versions of JMeter after 2.3.1 allow values to be quoted; this allows the value to contain a delimiter.
+    Previously it was necessary to choose a delimiter that was not used in any values.
     If "allow quoted data" is enabled, a value may be enclosed in double-quotes.
     These are removed. To include double-quotes within a quoted field, use two double-quotes.
     For example:
@@ -10718,15 +10996,15 @@ Yes
 
 </pre>
 
-	
+    
 </p>
 
-	
+    
 <p>
 
-	Versions of JMeter after 2.3.4 support CSV files which have a header line defining the column names.
-	To enable this, leave the "Variable Names" field empty. The correct delimiter must be provided.
-	
+    Versions of JMeter after 2.3.4 support CSV files which have a header line defining the column names.
+    To enable this, leave the "Variable Names" field empty. The correct delimiter must be provided.
+    
 </p>
 
     
@@ -10736,88 +11014,88 @@ Yes
     
 </p>
 
-	
+    
 <p>
 
-	By default, the file is only opened once, and each thread will use a different line from the file.
-	However the order in which lines are passed to threads depends on the order in which they execute,
-	which may vary between iterations.
-	Lines are read at the start of each test iteration.
+    By default, the file is only opened once, and each thread will use a different line from the file.
+    However the order in which lines are passed to threads depends on the order in which they execute,
+    which may vary between iterations.
+    Lines are read at the start of each test iteration.
     The file name and mode are resolved in the first iteration.
-	
+    
 </p>
 
-	
+    
 <p>
 
-	See the description of the Share mode below for additional options (JMeter 2.3.2+).
-	If you want each thread to have its own set of values, then you will need to create a set of files,
-	one for each thread. For example test1.csv, test2.csv,... testn.csv. Use the filename 
-	
+    See the description of the Share mode below for additional options (JMeter 2.3.2+).
+    If you want each thread to have its own set of values, then you will need to create a set of files,
+    one for each thread. For example test1.csv, test2.csv,... testn.csv. Use the filename 
+    
 <code>
 test${__threadNum}.csv
 </code>
  and set the "Sharing mode" to "Current thread".
-	
+    
 </p>
 
-	
+    
 <p>
 <table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
 <tr><td>CSV Dataset variables are defined at the start of each test iteration.
-	As this is after configuration processing is completed,
-	they cannot be used for some configuration items - such as JDBC Config - 
-	that process their contents at configuration time (see 
+    As this is after configuration processing is completed,
+    they cannot be used for some configuration items - such as JDBC Config - 
+    that process their contents at configuration time (see 
 <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40934">
 Bug 40394 
 </a>
 )
-	However the variables do work in the HTTP Auth Manager, as the username etc are processed at run-time.
-	
+    However the variables do work in the HTTP Auth Manager, as the username etc are processed at run-time.
+    
 </td></tr>
 </table>
 </p>
 
-	
+    
 <p>
 
-	As a special case, the string "\t" (without quotes) in the delimiter field is treated as a Tab.
-	
+    As a special case, the string "\t" (without quotes) in the delimiter field is treated as a Tab.
+    
 </p>
 
-	
+    
 <p>
 
-	When the end of file (EOF) is reached, and the recycle option is true, reading starts again with the first line of the file.
-	
+    When the end of file (EOF) is reached, and the recycle option is true, reading starts again with the first line of the file.
+    
 </p>
 
-	
+    
 <p>
 
-	If the recycle option is false, and stopThread is false, then all the variables are set to 
+    If the recycle option is false, and stopThread is false, then all the variables are set to 
 <b>
 &lt;EOF>
 </b>
  when the end of file is reached.
-	This value can be changed by setting the JMeter property 
+    This value can be changed by setting the JMeter property 
 <b>
 csvdataset.eofstring
 </b>
 .
-	
+    
 </p>
 
-	
+    
 <p>
 
-	If the Recycle option is false, and Stop Thread is true, then reaching EOF will cause the thread to be stopped.
-	
+    If the Recycle option is false, and Stop Thread is true, then reaching EOF will cause the thread to be stopped.
+    
 </p>
 
 
 <p><b>Control Panel</b></p>
-<div align="center"><img width='433' height='281' src="../images/screenshots/csvdatasetconfig.png"></div>
+<div align="center"><img width='433' height='281' src="../images/screenshots/csvdatasetconfig.png"/></div>
 <p>
 <b>Parameters</b>
 <a name="CSV_Data_Set_Config_parms"/>
@@ -10970,7 +11248,7 @@ Yes
 </td></tr>
 <tr><td>
 <p><b>Control Panel</b></p>
-<div align="center"><img width='520' height='202' src="../images/screenshots/ftp-config/ftp-request-defaults.png"></div>
+<div align="center"><img width='520' height='202' src="../images/screenshots/ftp-config/ftp-request-defaults.png"/></div>
 </td></tr>
 <tr><td><br></td></tr>
 </table>
@@ -11046,7 +11324,7 @@ These can be set up using a 
 
 
 <p><b>Control Panel</b></p>

[... 3139 lines stripped ...]


Mime
View raw message