blob: fdf0ff561a5e9ae4eb81daa32925a565a9f45d75 [file] [log] [blame]
<!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: Building an Extended LDAP Test Plan</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="../css/new-style.css">
<link rel="apple-touch-icon-precomposed" href="../images/apple-touch-icon.png">
<link rel="icon" href="../images/favicon.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="../images/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body role="document">
<a href="#content" class="hidden">Main content</a>
<div class="header">
<!--
APACHE LOGO
-->
<div>
<a href="https://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="../images/asf-logo.svg" alt="Logo ASF"></a>
</div>
<!--
PROJECT LOGO
-->
<div>
<a href="https://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a>
</div>
<div class="banner">
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Current Apache event teaser"></a>
<div class="clear"></div>
</div>
</div>
<div class="nav">
<ul class="menu">
<li onClick="return true">
<div class="menu-title">About</div>
<ul>
<li>
<a href="../index.html">Overview</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Download</div>
<ul>
<li>
<a href="../download_jmeter.cgi">Download Releases</a>
</li>
<li>
<a href="../changes.html">Release Notes</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Documentation</div>
<ul>
<li>
<a href="../usermanual/get-started.html">Get Started</a>
</li>
<li>
<a href="../usermanual/index.html">User Manual</a>
</li>
<li>
<a href="../usermanual/best-practices.html">Best Practices</a>
</li>
<li>
<a href="../usermanual/component_reference.html">Component Reference</a>
</li>
<li>
<a href="../usermanual/functions.html">Functions Reference</a>
</li>
<li>
<a href="../usermanual/properties_reference.html">Properties Reference</a>
</li>
<li>
<a href="../changes_history.html">Change History</a>
</li>
<li>
<a href="../api/index.html">Javadocs</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">FAQ (Wiki)</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Tutorials</div>
<ul>
<li>
<a href="../usermanual/jmeter_distributed_testing_step_by_step.html">Distributed Testing</a>
</li>
<li>
<a href="../usermanual/jmeter_proxy_step_by_step.html">Recording Tests</a>
</li>
<li>
<a href="../usermanual/junitsampler_tutorial.html">JUnit Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_accesslog_sampler_step_by_step.html">Access Log Sampler</a>
</li>
<li>
<a href="../usermanual/jmeter_tutorial.html">Extending JMeter</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Community</div>
<ul>
<li>
<a href="../issues.html">Issue Tracking</a>
</li>
<li>
<a href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a href="../mail.html">Mailing Lists</a>
</li>
<li>
<a href="../svnindex.html">Source Repositories</a>
</li>
<li>
<a href="../building.html">Building and Contributing</a>
</li>
<li>
<a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Foundation</div>
<ul>
<li>
<a href="https://www.apache.org/">The Apache Software Foundation (ASF)</a>
</li>
<li>
<a href="https://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="main" id="content">
<div class="social-media">
<ul class="social-media-links">
<li class="twitter">
<a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a>
</li>
<li class="github">
<a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a>
</li>
</ul>
</div>
<ul class="pagelinks">
<li>
<a href="build-ldap-test-plan.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="build-ws-test-plan.html">Next &gt;</a>
</li>
</ul>
<div class="section">
<h1 id="ldapexttest">8b. Building an Extended LDAP Test Plan<a class="sectionlink" href="#ldapexttest" title="Link to here">&para;</a>
</h1>
<p>
In this section, you will learn how to create a basic Test Plan to test an LDAP
server.</p>
<p>
As the Extended LDAP Sampler is highly configurable, this also means that it takes
some time to build a correct testplan. You can however tune it exactly up to your
needs.
</p>
<p>
You will create 1 user that send requests for nine tests on the LDAP server. Also, you will tell
the users to run their tests one time. So, the total number of requests is <span class="code">(1 user) x (9 requests) x
(repeat 1 time) = 9</span> LDAP requests. To construct the Test Plan, you will use the following elements:<br>
<a href="test_plan.html#thread_group">Thread Group</a>,<br>
<a href="../usermanual/component_reference.html#Adding_LDAP_Extended_Request_Defaults">Adding LDAP Extended Request Defaults</a>,<br>
<a href="../usermanual/component_reference.html#Adding_LDAP_Requests">Adding LDAP Requests</a>, and<br>
<a href="../usermanual/component_reference.html#Adding_a_Listener_to_View/Store_the_Test_Results">Adding a Listener to View/Store the Test Results</a>
</p>
<p>
This example assumes that the LDAP Server is available at <span class="code">ldap.test.com</span>.
</p>
<p>
For the less experienced LDAP users, I build a <a href="ldapops_tutor.html">small
LDAP tutorial</a> which shortly explains
the several LDAP operations that can be used in building a complex testplan.
</p>
<p>
Take care when using LDAP special characters in the distinguished name, in that case (e.g. you want to use a <span class="code">+</span> sign in a
distinguished name) you need to escape the character by adding an "<span class="code">\</span>" sign before that character.
Extra exception: if you want to add a <span class="code">\</span> character in a distinguished name (in an add or rename operation), you need to use 4 backslashes.
</p>
<p>
Examples:
</p>
<dl>
<dt>
<span class="code">cn=dolf\+smits</span>
</dt>
<dd>to add/search an entry with the name like <span class="code">cn=dolf+smits</span>
</dd>
<dt>
<span class="code">cn=dolf \\ smits</span>
</dt>
<dd>to search an entry with the name <span class="code">cn=dolf \ smits</span>
</dd>
<dt>
<span class="code">cn=c:\\\\log.txt</span>
</dt>
<dd>to add an entry with a name like <span class="code">cn=c:\log.txt</span>
</dd>
</dl>
<div class="subsection">
<h2 id="ext_adding_users">8b.1 Adding Users<a class="sectionlink" href="#ext_adding_users" title="Link to here">&para;</a>
</h2>
<p>
The first step you want to do with every JMeter Test Plan is to add a Thread Group element.
The Thread Group tells JMeter the number of users you want to simulate, how often the users should send
requests, and the how many requests they should send.
</p>
<p>
Go ahead and add the <span class="code">Thread Group</span> element by first selecting the <span class="code">Test Plan</span>, clicking your
right mouse button to get the <span class="code">Add</span> menu, and then select <span class="code">Add</span>&rarr;<span class="code">Threads (Users)</span>&rarr;<span class="code">Thread Group</span>.
You should now see the <span class="code">Thread Group</span> element under <span class="code">Test Plan</span>. If you do not see the element, then "expand" the Test Plan tree by
clicking on the Test Plan element.
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extthreadgroup.png"><img src="../images/screenshots/ldaptest/extthreadgroup.png" width="" height="" alt="
Figure 8b.1. Thread Group with Default Values"></a>
<figcaption>
Figure 8b.1. Thread Group with Default Values</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_ldapext_defaults">8b.2 Adding LDAP Extended Request Defaults<a class="sectionlink" href="#add_ldapext_defaults" title="Link to here">&para;</a>
</h2>
<p>
Begin by selecting the LDAP Ext Users element. Click your right mouse button
to get the <span class="code">Add</span> menu, and then select <span class="code">Add</span>&rarr;<span class="code">Config Element</span>&rarr;<span class="code">LDAP Extended Request Defaults</span>. Then,
select this new element to view its Control Panel.
</p>
<p>
Like most JMeter elements, the <span class="code">LDAP Extended Request Defaults</span> Control Panel has a name
field that you can modify. In this example, leave this field with the default value.
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extrequestdefaults.png"><img src="../images/screenshots/ldaptest/extrequestdefaults.png" width="" height="" alt="
Figure 8b.2 LDAP Defaults for our Test Plan"></a>
<figcaption>
<br>
Figure 8b.2 LDAP Defaults for our Test Plan</figcaption>
</figure>
</p>
<p>
For each of the different operations, some default values can be filled in.
In All cases, when a default is filled in, this is used for the LDAP extended requests.
For each request, you can override the defaults by filling in the values in the LDAP extended request sampler.
When no value is entered which is necessary for a test, the test will fail in an unpredictable way!
</p>
We will not enter any default values here, as we will build a very small testplan, so we will explain all the different fields when we add the LDAP Extended samplers.
</div>
<div class="subsection">
<h2 id="add_extrequests">8b.3 Adding LDAP Requests<a class="sectionlink" href="#add_extrequests" title="Link to here">&para;</a>
</h2>
<p>
In our Test Plan, we want to use all 9 LDAP requests.
</p>
<ol>
<li>
Thread bind
</li>
<li>
Search Test
</li>
<li>
Compare Test
</li>
<li>
Single bind/unbind Test
</li>
<li>
Add Test
</li>
<li>
Modify Test
</li>
<li>
Rename entry (moddn)
</li>
<li>
Delete Test
</li>
<li>
Thread unbind
</li>
</ol>
<p>
JMeter sends requests in the order that you add them to the tree.
</p>
<p>
Adding a requests always start by:<br>
Adding the <span class="code">LDAP Extended Request</span> to the LDAP Ext Users element (<span class="code">Add</span>&rarr;
<span class="code">Sampler</span>&rarr;<span class="code">LDAP Ext Request</span>). Then, select the <span class="code">LDAP Ext Request</span> element in the tree
and edit the following properties.</p>
<div class="subsection">
<h2 id="add_threadbind">8b.3.1 Adding a Thread bind Request<a class="sectionlink" href="#add_threadbind" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">1. Thread bind</span>"
</li>
<li>
Select the "<span class="code">Thread bind</span>" button.
</li>
<li>
Enter the hostname value from the LDAP server in the Servername field
</li>
<li>
Enter the portnumber from the LDAP server (<span class="code">636</span> : ldap over SSL) in the port field
</li>
<li>
<i>(Optional)</i> Enter the baseDN in the DN field, this baseDN will be used as the starting point for searches, add, deletes, etc.<br>
take care that this must be the uppermost shared level for all your request, e.g. when all information is stored under <span class="code">ou=Users, dc=test, dc=com</span>, you can use this value in the basedn.<br>
</li>
<li>
<i>(Optional)</i> Enter the distinguished name from the user you want to use for authentication.
When this field is kept empty, an anonymous bind will be established.
</li>
<li>
<i>(Optional)</i> Enter the password for the user you want to authenticate with, an empty password will also lead to an anonymous bind.
</li>
<li>
<i>(Optional)</i> Enter a value for the connection timeout with LDAP
</li>
<li>
<i>(Optional)</i> Check the box Use Secure LDAP Protocol if you access with LDAP over SSL (ldaps)
</li>
<li>
<i>(Optional)</i> Check the box TrustAll if you want the client to trust all certificates
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extthreadbind.png"><img src="../images/screenshots/ldaptest/extthreadbind.png" width="" height="" alt="
Figure 8b.3.1. Thread Bind example"></a>
<figcaption>
Figure 8b.3.1. Thread Bind example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_searchreq">8b.3.2 Adding a search Request<a class="sectionlink" href="#add_searchreq" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">2. Search Test</span>"
</li>
<li>
Select the "<span class="code">Search Test</span>" button.
</li>
<li>
<i>(Optional)</i> enter the searchbase under which you want to perform the search, relative to the basedn, used in the thread bind request.<br>
When left empty, the basedn is used as a search base, this files is important if you want to use a "base-entry" or "one-level" search (see below)
</li>
<li>
Enter the searchfilter, any decent LDAP search filter will do, but for now, use something simple, like <span class="code">(sn=Doe)</span> or <span class="code">(cn=*)</span>
</li>
<li>
<i>(Optional)</i> Enter the scope in the scope field, it has three options:
<ol>
<li>baseobject search<br>only the given searchbase is used, only for checking attributes or existence.
</li>
<li>onelevel search<br>Only search in one level below given searchbase is used
</li>
<li>subtree search<br> Searches for object at any point below the given basedn
</li>
</ol>
</li>
<li>
<i>(Optional)</i> Size limit, specifies the maximum number of returned entries,
</li>
<li>
<i>(Optional)</i> Time limit, specifies the maximum number of milliseconds, the SERVER can use for performing the search. It is NOT the maximum time the application will wait.<br>
When a very large returnset is returned, from a very fast server, over a very slow line, you may have to wait for ages for the completion of the search request, but this parameter will not influence this.
</li>
<li>
<i>(Optional)</i> Attributes you want in the search answer. This can be used to limit the size of the answer, especially when an object has very large attributes (like <span class="code">jpegPhoto</span>). There are three possibilities:
<ol>
<li>Leave empty (the default setting must also be empty) This will return all attributes.
</li>
<li>Put in one empty value (<span class="code">""</span>), it will request a non-existent attributes, so in reality it returns no attributes
</li>
<li>Put in the attributes, separated by a semi-colon. It will return only the requested attributes
</li>
</ol>
</li>
<li>
<i>(Optional)</i> Return object. Checked will return all java-object attributes, it will add these to the requested attributes, as specified above.<br>
Unchecked will mean no java-object attributes will be returned.
</li>
<li>
<i>(Optional)</i> Dereference aliases. Checked will mean it will follow references, Unchecked says it will not.
</li>
<li>
<i>(Optional)</i> Parse the search results?. Checked will mean it gets all results in response data, Unchecked says it will not.
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extsearch.png"><img src="../images/screenshots/ldaptest/extsearch.png" width="" height="" alt="
Figure 8b.3.2. search request example"></a>
<figcaption>
Figure 8b.3.2. search request example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_comparereq">8b.3.3 Adding a Compare Request<a class="sectionlink" href="#add_comparereq" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">3. Compare Test</span>"
</li>
<li>
Select the "<span class="code">Compare</span>" button.
</li>
<li>
enter the entryname form the object on which you want the compare operation to work, relative to the basedn, e.g. "<span class="code">cn=jdoe,ou=Users</span>"
</li>
<li>
Enter the compare filter, this must be in the form "<span class="code">attribute=value</span>", e.g. "<span class="code">mail=jdoe@test.com</span>"
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extcompare.png"><img src="../images/screenshots/ldaptest/extcompare.png" width="" height="" alt="
Figure 8b.3.3. Compare example"></a>
<figcaption>
Figure 8b.3.3. Compare example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_sbind">8b.3.4 Adding a Single bind/unbind<a class="sectionlink" href="#add_sbind" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">4. Single bind/unbind Test</span>"
</li>
<li>
Select the "<span class="code">Single bind/unbind</span>" button.
</li>
<li>
Enter the FULL distinguished name from the user you want to use for authentication.<br>
E.g. <span class="code">cn=jdoe,ou=Users,dc=test,dc=com</span>
When this field is kept empty, an anonymous bind will be established.
</li>
<li>
Enter the password for the user you want to authenticate with, an empty password will also lead to an anonymous bind.
</li>
</ol>
<b>Take care</b>: This single bind/unbind is in reality two separate operations but cannot easily be split!
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extsbind.png"><img src="../images/screenshots/ldaptest/extsbind.png" width="" height="" alt="
Figure 8b.3.4. Single bind/unbind example"></a>
<figcaption>
Figure 8b.3.4. Single bind/unbind example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_addreq">8b.3.5 Adding an Add Request<a class="sectionlink" href="#add_addreq" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">5. Add Test</span>"
</li>
<li>
Select the "<span class="code">Add</span>" button.
</li>
<li>
Enter the distinguished name for the object to add, relative to the basedn.
</li>
<li>
Add a line in the "<span class="code">add test</span>" table, fill in the attribute and value.<br>
When you need the same attribute more than once, just add a new line, add the attribute again, and a different value.<br>
All necessary attributes and values must be specified to pass the test, see picture!<br>
(sometimes the server adds the attribute "<span class="code">objectClass=top</span>", this might give a problem.
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extadd.png"><img src="../images/screenshots/ldaptest/extadd.png" width="" height="" alt="
Figure 8b.3.5. Add request example"></a>
<figcaption>
Figure 8b.3.5. Add request example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_modreq">8b.3.6 Adding a Modify Request<a class="sectionlink" href="#add_modreq" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">6. Modify Test</span>"
</li>
<li>
Select the "<span class="code">Modify test</span>" button.
</li>
<li>
Enter the distinguished name for the object to modify, relative to the basedn.
</li>
<li>
Add a line in the "<span class="code">modify test</span>" table, with the "<span class="code">add</span>" button.
</li>
<li>
You need to enter the attribute you want to modify, (optional) a value, and the opcode. The meaning of this opcode:
<dl>
<dt>
<span class="code">add</span>
</dt>
<dd>this will mean that the attribute value (not optional in this case) will be added to the attribute.<br>
When the attribute is not existing, it will be created and the value added<br>
When it is existing, and defined multi-valued, the new value is added.<br>
when it is existing, but single valued, it will fail.</dd>
<dt>
<span class="code">replace</span>
</dt>
<dd>
This will overwrite the attribute with the given new value (not optional here)<br>
When the attribute is not existing, it will be created and the value added<br>
When it is existing, old values are removed, the new value is added.</dd>
<dt>
<span class="code">delete</span>
</dt>
<dd>
When no value is given, all values will be removed<br>
When a value is given, only that value will be removed<br>
when the given value is not existing, the test will fail
</dd>
</dl>
</li>
<li>
<i>(Optional)</i> Add more modifications in the "<span class="code">modify test</span>" table.<br>
All modifications which are specified must succeed, to let the modification test pass. When one modification fails,
NO modifications at all will be made and the entry will remain unchanged.
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extmod.png"><img src="../images/screenshots/ldaptest/extmod.png" width="" height="" alt="
Figure 8b.3.6. Modify example"></a>
<figcaption>
Figure 8b.3.6. Modify example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_moddn">8b.3.7 Adding a Rename Request (moddn)<a class="sectionlink" href="#add_moddn" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">7. Rename entry (moddn)</span>"
</li>
<li>
Select the "<span class="code">Rename Entry</span>" button.
</li>
<li>
Enter the name of the entry, relative to the baseDN, in the "<span class="code">old entry name</span>"-Field.<br>
that is, if you want to rename "<span class="code">cn=Little John Doe,ou=Users</span>", and you set the baseDN to "<span class="code">dc=test,dc=com</span>",
you need to enter "<span class="code">cn=John Junior Doe,ou=Users</span>" in the <span class="code">old entry name</span>-Field.
</li>
<li>
Enter the new name of the entry, relative to the baseDN, in the "<span class="code">new distinguished name</span>"-Field.<br>
when you only change the RDN, it will simply rename the entry<br>
when you also add a different subtree, e.g. you change from <span class="code">cn=john doe,ou=Users</span> to <span class="code">cn=john doe,ou=oldusers</span>, it will move the entry.
You can also move a complete subtree (If your LDAP server supports this!), e.g. <span class="code">ou=Users,ou=retired</span>, to <span class="code">ou=oldusers,ou=users</span>,
this will move the complete subtree, plus all retired people in the subtree to the new place in the tree.
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extmoddn.png"><img src="../images/screenshots/ldaptest/extmoddn.png" width="" height="" alt="
Figure 8b.3.7. Rename example"></a>
<figcaption>
Figure 8b.3.7. Rename example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_delreq">8b.3.8 Adding a Delete Request<a class="sectionlink" href="#add_delreq" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">8. Delete Test</span>"
</li>
<li>
Select the "<span class="code">Delete</span>" button.
</li>
<li>
Enter the name of the entry, relative to the baseDN, in the <span class="code">Delete</span>-Field.<br>
that is, if you want to remove "<span class="code">cn=John Junior Doe,ou=Users,dc=test,dc=com</span>", and you set the baseDN to "<span class="code">dc=test,dc=com</span>",
you need to enter "<span class="code">cn=John Junior Doe,ou=Users</span>" in the <span class="code">Delete</span>-field.
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extdel.png"><img src="../images/screenshots/ldaptest/extdel.png" width="" height="" alt="
Figure 8b.3.8. Delete example"></a>
<figcaption>
Figure 8b.3.8. Delete example</figcaption>
</figure>
</p>
</div>
<div class="subsection">
<h2 id="add_unbind">8b.3.9 Adding an unbind Request<a class="sectionlink" href="#add_unbind" title="Link to here">&para;</a>
</h2>
<p>
<ol>
<li>
Rename the element: "<span class="code">9. Thread unbind</span>"
</li>
<li>
Select the "<span class="code">Thread unbind</span>" button.
This will be enough as it just closes the current connection.
The information which is needed is already known by the system
</li>
</ol>
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extthreadunbind.png"><img src="../images/screenshots/ldaptest/extthreadunbind.png" width="" height="" alt="
Figure 8b.3.9. Unbind example"></a>
<figcaption>
Figure 8b.3.9. Unbind example</figcaption>
</figure>
</p>
</div>
</div>
<div class="subsection">
<h2 id="add_ldapext_listener">8b.4 Adding a Listener to View/Store the Test Results<a class="sectionlink" href="#add_ldapext_listener" title="Link to here">&para;</a>
</h2>
<p>
The final element you need to add to your Test Plan is a Listener.
This element is responsible for storing all of the results of your LDAP
requests in a file and presenting a visual model of the data. Select the Thread group
element and add a <span class="code">View Results Tree</span> (<span class="code">Add</span>&rarr;<span class="code">Listener</span>&rarr;<span class="code">View Results Tree</span>)
</p>
<p>
<figure>
<a href="../images/screenshots/ldaptest/extviewtree.png"><img src="../images/screenshots/ldaptest/extviewtree.png" width="" height="" alt="
Figure 8b.4. View Result Tree Listener"></a>
<figcaption>
Figure 8b.4. View Result Tree Listener</figcaption>
</figure>
</p>
<p>
In this listener you have three tabs to view, the sampler result, the request and the response data.
<ol>
<li>
The sampler result just contains the response time, the returncode and return message
</li>
<li>
The request gives a short description of the request that was made, in practice no relevant information
is contained here.
</li>
<li>
The response data contains the full details of the sent request, as well the full details of the received answer,
this is given in a (self defined) xml-style.
<a href="ldapanswer_xml.html">The full description can be found here.</a>
</li>
</ol>
</p>
</div>
</div>
<ul class="pagelinks">
<li>
<a href="build-ldap-test-plan.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="build-ws-test-plan.html">Next &gt;</a>
</li>
</ul>
<div class="share-links">
Share this page:
<ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
Copyright &copy;
1999 &ndash;
2019
, Apache Software Foundation
</div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
feather, and the Apache JMeter logo are
trademarks of the
Apache Software Foundation.
</div>
</div>
<script>(function(){
"use strict";
// enable 'go to top' button functionality
document.addEventListener('scroll', function() {
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
document.getElementById("topButton").style.display = "block";
} else {
document.getElementById("topButton").style.display = "none";
}
});
// fill in the current location into social links on this page.
var as = document.getElementsByTagName('a');
var loc = document.location.href;
if (!loc.toLowerCase().startsWith('http')) {
return;
}
for (var i=0; i<as.length; i++) {
var href = as[i].getAttribute('data-social-url');
if (href !== null) {
as[i].href = href + encodeURIComponent(loc);
}
}
})();</script>
</body>
</html>