<!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 a SOAP WebService 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-ldapext-test-plan.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="build-jms-point-to-point-test-plan.html">Next &gt;</a>
</li>
</ul>
<div class="section">
<h1 id="building">9. Building a WebService 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 
<a href="build-test-plan.html">Test Plan</a> to test a WebService. You will
create five users that send requests to One page.
Also, you will tell the users to run their tests twice. So, the total number of
requests is (5 users) x (1 requests) x (repeat 2 times) = 10 HTTP 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#HTTP_Request">HTTP Request</a>, and
<a href="../usermanual/component_reference.html#Aggregate_Graph">Aggregate Graph</a>.</p>


<p>If the sampler appears to be getting an error from the webservice, double check the
SOAP message and make sure the format is correct. In particular, make sure the
<span class="code">xmlns</span> attributes are exactly the same as the WSDL. If the xml namespace is
different, the webservice will likely return an error.</p>


</div>
<div class="section">
<h1 id="soap_webservice_template">9.1 Creating WebService Test Plan<a class="sectionlink" href="#soap_webservice_template" title="Link to here">&para;</a>
</h1>


<p>In our Test Plan, we will use a .NET webservice. We won't go into the details of writing a
webservice. If you don't know how to write a webservice, google for
webservice and familiarize yourself with writing webservices for
Java and .NET. It should be noted there is a significant difference
between how .NET and Java implement webservices. The topic is too
broad to cover in the user manual. Please refer to other sources to
get a better idea of the differences.</p>


<div class="clear"></div>
<div class="note">JMeter sends requests in the order that they appear in the tree.</div>
<div class="clear"></div>


<p>Start by using menu
  <span class="menuchoice"><span class="guimenuitem">File</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Templates&hellip;</span></span>
  and select template "<span class="code">Building a SOAP Webservice Test Plan</span>".
Then, click "<span class="code">Create</span>" button.

<figure>
<a href="../images/screenshots/ws_template.png"><img src="../images/screenshots/ws_template.png" width="1050" height="684" alt="
Figure 9.1.0. Webservice Template"></a>
<figcaption>
Figure 9.1.0. Webservice Template</figcaption>
</figure>
Change the following:
<ol>

<li>In "<span class="code">HTTP Request Defaults</span>" change "<span class="code">Server Name of IP</span>"</li>

<li>In "<span class="code">Soap Request</span>", change "<span class="code">Path:</span>"
<figure>
<a href="../images/screenshots/ws_http_request.png"><img src="../images/screenshots/ws_http_request.png" width="955" height="501" alt="Figure 9.1.1 Webservice Path"></a>
<figcaption>Figure 9.1.1 Webservice Path</figcaption>
</figure>

</li>

</ol>

</p>


<p>Next, select "<span class="code">HTTP Header Manager</span>" and update "<span class="code">SOAPAction</span>" header to match your webservice.
Some webservices may not use SOAPAction in this case remove it.<br>
Currently, only .NET uses SOAPAction, so it is normal to have a blank SOAPAction for all other webservices. The list includes JWSDP, Weblogic, Axis, The Mind Electric Glue, and gSoap.
</p>

<figure>
<a href="../images/screenshots/ws_header.png"><img src="../images/screenshots/ws_header.png" width="1327" height="348" alt="Figure 9.1.2 Webservice Headers"></a>
<figcaption>Figure 9.1.2 Webservice Headers</figcaption>
</figure>


<p>The last step is to paste the SOAP message in the "<span class="code">Body Data</span>"
text area.</p>

<figure>
<a href="../images/screenshots/ws_http_request.png"><img src="../images/screenshots/ws_http_request.png" width="955" height="501" alt="Figure 9.1.3 Webservice Body"></a>
<figcaption>Figure 9.1.3 Webservice Body</figcaption>
</figure>



</div>
<div class="section">
<h1 id="adding_users">9.2 Adding Users<a class="sectionlink" href="#adding_users" title="Link to here">&para;</a>
</h1>

<p>The <a href="test_plan.html#thread_group">Thread Group</a> 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>Select the Thread Group element
in the tree, if you have not already selected it. You should now see the Thread
Group Control Panel in the right section of the JMeter window (see Figure 9.2
below)</p>


<figure>
<a href="../images/screenshots/webtest/threadgroup.png"><img src="../images/screenshots/webtest/threadgroup.png" width="" height="" alt="
Figure 9.2. Thread Group with Default Values"></a>
<figcaption>
Figure 9.2. Thread Group with Default Values</figcaption>
</figure>


<p>Start by providing a more descriptive name for our Thread Group. In the name
field, enter JMeter Users.</p>


<p>Next, increase the number of users (called threads) to 10.</p>


<p>In the next field, the Ramp-Up Period, leave the default value of 0
seconds.  This property tells JMeter how long to delay between starting each
user. For example, if you enter a Ramp-Up Period of 5 seconds, JMeter will
finish starting all of your users by the end of the 5 seconds.  So, if we have
5 users and a 5 second Ramp-Up Period, then the delay between starting users
would be 1 second (5 users / 5 seconds = 1 user per second).  If you set the
value to 0, then JMeter will immediately start all of your users.</p>


<p>Finally, clear the checkbox labeled "<span class="code">Forever</span>", and enter a value of <span class="code">2</span> in
the Loop Count field.  This property tells JMeter how many times to repeat your
test. If you enter a loop count value of <span class="code">0</span>, then JMeter will run your test only
once. To have JMeter repeatedly run your Test Plan, select the <span class="code">Forever</span>
checkbox.</p>


<div class="clear"></div>
<div class="note">In most applications, you have to manually accept
changes you make in a Control Panel.  However, in JMeter, the Control Panel
automatically accepts your changes as you make them.  If you change the
name of an element, the tree will be updated with the new text after you
leave the Control Panel (for example, when selecting another tree element).</div>
<div class="clear"></div>


<p>See Figure 9.2 for the completed JMeter Users Thread Group.</p>


<figure>
<a href="../images/screenshots/webtest/threadgroup2.png"><img src="../images/screenshots/webtest/threadgroup2.png" width="" height="" alt="
Figure 9.3. JMeter Users Thread Group"></a>
<figcaption>
Figure 9.3. JMeter Users Thread Group</figcaption>
</figure>

</div>
<div class="section">
<h1 id="adding_listener">9.3 Adding a Listener to View Store the Test Results<a class="sectionlink" href="#adding_listener" title="Link to here">&para;</a>
</h1>

<p>The final element you need to add to your Test Plan is a
 <a href="component_reference.html#listeners">Listener</a>. This element is
responsible for storing all of the results of your HTTP requests in a file and presenting
a visual model of the data.</p>


<p>Select the JMeter Users element and add a <a href="../usermanual/component_reference.html#Aggregate_Graph">Aggregate Graph</a> listener 
(<span class="menuchoice"><span class="guimenuitem">Add</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Listener</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Aggregate Graph</span></span>).  Next, you need to specify a directory and filename of the
output file.  You can either type it into the filename field, or select the
Browse button and browse to a directory and then enter a filename.</p>


<figure>
<a href="../images/screenshots/ws_listener.png"><img src="../images/screenshots/ws_listener.png" width="1256" height="802" alt="
Figure 9.4. Graph Results Listener"></a>
<figcaption>
Figure 9.4. Graph Results Listener</figcaption>
</figure>


</div>
<div class="section">
<h1 id="rest_webservice">9.4 Rest Webservice<a class="sectionlink" href="#rest_webservice" title="Link to here">&para;</a>
</h1>

<p>Testing a REST Webservice is very similar as you only need to modify in HTTP Request
<ul>

<li>
<span class="code">Method</span>: to select the one you want to test</li>

<li>
<span class="code">Body Data</span>: which can be JSON, XML or any custom text</li>

</ul>
You may also need to modify "<span class="code">HTTP Header Manager</span>" to select the correct "<span class="code">Content-Type</span>"
</p>

</div>
<ul class="pagelinks">
<li>
<a href="build-ldapext-test-plan.html">&lt; Prev</a>
</li>
<li>
<a href="../index.html">Index</a>
</li>
<li>
<a href="build-jms-point-to-point-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>
