<!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 LDAP Test Plan</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="http://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css"><link 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="http://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="http://jmeter.apache.org/"><img class="logo" src="../images/logo.svg" alt="Apache JMeter"></a></div><div class="banner"><iframe src="http://www.apache.org/ads/bannerbar.html" style="border-width:0;" frameborder="0" scrolling="no"></iframe><div class="clear"></div></div></div><div class="nav"><ul class="menu"><li onClick="return true"><div class="menu-title">About</div><ul><li><a href="../index.html">Overview</a></li><li><a href="http://www.apache.org/licenses/">License</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Download</div><ul><li><a href="../download_jmeter.cgi">Download Releases</a></li><li><a href="../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="../changes_history.html">Change History</a></li><li><a href="../api/index.html">Javadocs</a></li><li><a href="../building.html">Building JMeter and Add-Ons</a></li><li><a href="http://wiki.apache.org/jmeter">JMeter Wiki</a></li><li><a href="http://wiki.apache.org/jmeter/JMeterFAQ">FAQ (Wiki)</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Tutorials (PDF format)</div><ul><li><a href="../usermanual/jmeter_distributed_testing_step_by_step.pdf">Distributed Testing</a></li><li><a href="../usermanual/jmeter_proxy_step_by_step.pdf">Recording Tests</a></li><li><a href="../usermanual/junitsampler_tutorial.pdf">JUnit Sampler</a></li><li><a href="../usermanual/jmeter_accesslog_sampler_step_by_step.pdf">Access Log Sampler</a></li><li><a href="../extending/jmeter_tutorial.pdf">Extending JMeter</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Community</div><ul><li><a href="../issues.html">Issue Tracking</a></li><li><a href="../mail.html">Mailing Lists</a></li><li><a href="../svnindex.html">Source Repositories</a></li><li><a href="../building.html">Building and Contributing</a></li><li><a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a></li><li><a href="http://wiki.apache.org/jmeter/JMeterCommitters">Contributors</a></li></ul></li></ul><ul class="menu"><li onClick="return true"><div class="menu-title">Foundation</div><ul><li><a href="http://www.apache.org/">ASF</a></li><li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a></li><li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul></li></ul></div><div class="main" id="content"><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-ftp-test-plan.html">&lt; Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="build-ldapext-test-plan.html">Next &gt;</a></li></ul><div class="section"><h1 id="building">9a. Building an LDAP Test Plan<a class="sectionlink" href="#building" 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.
You will create four users that send requests for four tests on the LDAP server. Also, you will tell
the users to run their tests 4 times. So,  the total number of requests is (4 users) x (4 requests) x
repeat 4 times) = 40 LDAP requests. To construct the Test Plan, you will use the following elements:
<a href="test_plan.html#thread_group">Thread Group</a>,
<a href="../usermanual/component_reference.html#LDAP_Request">LDAP Request</a>,
<a href="../usermanual/component_reference.html#LDAP_Request_Defaults">LDAP Request Defaults</a>, and
<a href="../usermanual/component_reference.html#View_Results_in_Table">View Results in Table</a>
.</p>
        <p>This example assumes that the LDAP Server is available at ldap.test.com.</p>
</div><div class="section"><h1 id="adding_users">9a.1 Adding Users<a class="sectionlink" href="#adding_users" title="Link to here">&para;</a></h1>
        <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 ThreadGroup element by first selecting the Test Plan, clicking your
right mouse button to get the <span class="menuchoice"><span class="guimenuitem">Add</span></span> menu, and then select
<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">ThreadGroup</span></span>. You should now see the
Thread Group element under Test Plan. If you do not see the element, then "expand" the Test Plan tree by
clicking on the Test Plan element.
<figure><a href="../images/screenshots/ldaptest/threadgroup.png"><img src="../images/screenshots/ldaptest/threadgroup.png" width="" height="" alt="
Figure 9a.1. Thread Group and final test tree"></a><figcaption>
Figure 9a.1. Thread Group and final test tree</figcaption></figure>

</p>
</div><div class="section"><h1 id="add_login">9a.2 Adding Login Config Element<a class="sectionlink" href="#add_login" title="Link to here">&para;</a></h1>
        <p>Begin by selecting the <span class="code">LDAP Users</span> element. Click your right mouse
button to get the Add menu, and then select
  <span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Config Element</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Login Config Element</span></span>.
Then,  select this new element to view its Control Panel.</p>
        <p>Like most JMeter elements, the <span class="code">Login  Config Element</span>'s Control Panel has a name
field that you can modify. In this example, leave this field with the default value.</p>

<figure><a href="../images/screenshots/ldaptest/login-config-element.png"><img src="../images/screenshots/ldaptest/login-config-element.png" width="" height="" alt="
  Figure 9a.2 Login Config Element for our Test Plan"></a><figcaption>
  Figure 9a.2 Login Config Element for our Test Plan</figcaption></figure>

        <div class="clear"></div><div class="note"><p>Enter Username field to "your LDAP Username",<br>
        The password field to "your LDAP Password"</p>

        <p>These values will be used by the LDAP Requests.</p></div><div class="clear"></div>
</div><div class="section"><h1 id="add_defaults">9a.3 Adding LDAP Request Defaults<a class="sectionlink" href="#add_defaults" title="Link to here">&para;</a></h1>
                <p>Begin by selecting the <span class="code">LDAP Users</span> element. Click your right mouse button
to get the <span class="menuchoice"><span class="guimenuitem">Add</span></span> menu, and then select
<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Config Element</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">LDAP Request Defaults</span></span>. Then,
select this new element to view its Control Panel.</p>
        <p>Like most JMeter elements, the <span class="code">LDAP Request Defaults</span> Control Panel has a name
field that you can modify. In this example, leave this field with the default value.</p>


<figure><a href="../images/screenshots/ldaptest/requestdefaults.png"><img src="../images/screenshots/ldaptest/requestdefaults.png" width="" height="" alt="
  Figure 9a.3 LDAP Defaults for our Test Plan"></a><figcaption>
  Figure 9a.3 LDAP Defaults for our Test Plan</figcaption></figure>

        <div class="clear"></div><div class="note">Enter <span class="code">DN</span> field to "<span class="code">your LDAP Root Distinguished Name</span>".<br>
                Enter LDAP Server's <span class="code">Servername</span> field to "<span class="code">ldap.test.com</span>".<br>
        The <span class="code">port</span> to <span class="code">389</span>.<br>
        These values are default for the LDAP Requests.</div><div class="clear"></div>
</div><div class="section"><h1 id="add_requests">9a.4 Adding LDAP Requests<a class="sectionlink" href="#add_requests" title="Link to here">&para;</a></h1>
                <p>In our Test Plan, we need to make four LDAP requests.</p>
                <ol>
            <li>Inbuilt Add Test</li>
            <li>Inbuilt Search Test</li>
            <li>Inbuilt Modify Test</li>
            <li>Inbuilt Delete Test</li>

        </ol>
        <p>JMeter sends requests in the order that you add them to the tree.
Start by adding the first LDAP Request to the LDAP Users element
(<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Sampler</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">LDAP Request</span></span>). Then, select the LDAP Request  element in the tree
and edit the following properties</p>
        <ol>
            <li>Rename to "<span class="code">Add</span>" this element</li>
            <li>Select the <span class="code">Add Test</span> radio button in <span class="code">Test Configuration</span> group</li>
        </ol>
                <figure><a href="../images/screenshots/ldaptest/add.png"><img src="../images/screenshots/ldaptest/add.png" width="" height="" alt="
                  Figure 9a.4.1 LDAP Request for Inbuilt Add test"></a><figcaption>
                  Figure 9a.4.1 LDAP Request for Inbuilt Add test</figcaption></figure>


                <p>You do not have to set the <span class="code">Servername</span> field, <span class="code">port</span> field, <span class="code">Username</span>, <span class="code">Password</span>
and <span class="code">DN</span> because you already specified this value in the <span class="code">Login Config Element</span> and
<span class="code">LDAP Request Defaults.</span></p>
        <p>Next, add the second LDAP Request and edit the following
properties</p>
        <ol>
            <li>Rename to "<span class="code">Search</span>" this element</li>
            <li>Select the <span class="code">Search Test</span> radio button in <span class="code">Test Configuration</span> group</li>
        </ol>
        Next, add the Third LDAP Request and edit the following properties
                <figure><a href="../images/screenshots/ldaptest/search.png"><img src="../images/screenshots/ldaptest/search.png" width="" height="" alt="
                  Figure 9a.4.2 LDAP Request for Inbuilt Search test"></a><figcaption>
                  Figure 9a.4.2 LDAP Request for Inbuilt Search test</figcaption></figure>

        <ol>
            <li>Rename to "<span class="code">Modify</span>" this element</li>
            <li>Select the <span class="code">Modify Test</span> radio button in <span class="code">Test Configuration</span> group</li>
        </ol>
        Next, add the fourth LDAP Request and edit the following properties
                
                <figure><a href="../images/screenshots/ldaptest/modify.png"><img src="../images/screenshots/ldaptest/modify.png" width="" height="" alt="
                  Figure 9a.4.3 LDAP Request for Inbuilt Modify test"></a><figcaption>
                  Figure 9a.4.3 LDAP Request for Inbuilt Modify test</figcaption></figure>

        <ol>
            <li>Rename to "<span class="code">Delete</span>" this element</li>
            <li>Select the <span class="code">Delete Test</span> radio button in <span class="code">Test Configuration</span> group</li>
        </ol>
                <figure><a href="../images/screenshots/ldaptest/delete.png"><img src="../images/screenshots/ldaptest/delete.png" width="" height="" alt="
                  Figure 9a.4.4 LDAP Request for Inbuilt Delete test"></a><figcaption>
                  Figure 9a.4.4 LDAP Request for Inbuilt Delete test</figcaption></figure>

</div><div class="section"><h1 id="ResponseAssertion">9a.5 Adding a Response Assertion<a class="sectionlink" href="#ResponseAssertion" title="Link to here">&para;</a></h1>
               <p>You can add a Response Assertion element.
 This element will check the received response data by verifying if the response text is "<span class="code">successful</span>".
  (<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Assertion</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Response Assertion</span></span>).</p>
<div class="clear"></div><div class="note">Note: A this position in the tree,
  the Response Assertion will be executed for each LDAP Request.</div><div class="clear"></div>
          <ol>
            <li>Select <span class="code">Text Response</span> Radio button in <span class="code">Response Field to Test</span> group</li>
            <li>Select <span class="code">Substring</span> Radio button in <span class="code">Pattern Matching Rules</span> group</li>
            <li>Click on <span class="code">Add</span> button and add the string "<span class="code">successful</span>" in <span class="code">Pattern to Test</span> field</li>
        </ol>
<figure><a href="../images/screenshots/ldaptest/responseassertion.png"><img src="../images/screenshots/ldaptest/responseassertion.png" width="" height="" alt="
  Figure 9a.5 LDAP Response Assertion"></a><figcaption>
  Figure 9a.5 LDAP Response Assertion</figcaption></figure>
</div><div class="section"><h1 id="add_listener">9a.6 Adding a Listener to View/Store the Test Results<a class="sectionlink" href="#add_listener" title="Link to here">&para;</a></h1>
               <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 LDAP
Users element and add a View Results in Table
(<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Listener</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">View Results in Table</span></span>)</p>
<figure><a href="../images/screenshots/ldaptest/viewtable.png"><img src="../images/screenshots/ldaptest/viewtable.png" width="" height="" alt="
  Figure 9a.6 View Results in Table Listener"></a><figcaption>
  Figure 9a.6 View Results in Table Listener</figcaption></figure>

</div><ul class="pagelinks"><li><a href="build-ftp-test-plan.html">&lt; Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="build-ldapext-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><li class="gplus"><a data-social-url="https://plus.google.com/share?url=" title="Share on Google+"><i class="fa fa-google-plus" aria-hidden="true"></i>share</a></li></ul></div></div><div class="footer"><div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2016
            , 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(){
            // fill in the current location into social links on this page.
            "use strict";
            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>