| <!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 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="get-started.html">< Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="test_plan.html">Next ></a></li></ul><div class="section"><h1>3. Building a Test Plan</h1> |
| <p>A test plan describes a series of steps JMeter will execute when run. A complete |
| test plan will consist of one or more Thread Groups, logic controllers, sample generating |
| controllers, listeners, timers, assertions, and configuration elements. |
| </p> |
| |
| <div class="subsection"><h2 id="add_remove">3.1 Adding and Removing Elements<a class="sectionlink" href="#add_remove" title="Link to here">¶</a></h2> |
| <p>Adding <a href="test_plan.html">elements to a test plan</a> can be done by right-clicking on an element in the |
| tree, and choosing a new element from the "add" list. Alternatively, elements can |
| be loaded from file and added by choosing the "merge" or "open" option.</p> |
| |
| <p>To remove an element, make sure the element is selected, right-click on the element, |
| and choose the "remove" option.</p> |
| </div> |
| |
| <div class="subsection"><h2 id="load_save">3.2 Loading and Saving Elements<a class="sectionlink" href="#load_save" title="Link to here">¶</a></h2> |
| <p>To load an element from file, right click on the existing tree elements to which |
| you want to add the loaded element, and select the "merge" option. Choose the file where |
| your elements are saved. JMeter will merge the elements into the tree.</p> |
| |
| <p>To save tree elements, right click on an element and choose the "Save Selection As …" option. |
| JMeter will save the element selected, plus all child elements beneath it. In this way, |
| you can save test tree fragments and individual elements for later use.</p> |
| |
| <div class="clear"></div><div class="note">By default, the workbench is not automatically saved with the test plan, but it can be saved by checking "Save Workbench" option on Workbench element.</div><div class="clear"></div> |
| </div> |
| |
| <div class="subsection"><h2 id="config_element">3.3 Configuring Tree Elements<a class="sectionlink" href="#config_element" title="Link to here">¶</a></h2> |
| <p>Any element in the test tree will present controls in JMeter's right-hand frame. These |
| controls allow you to configure the behavior of that particular test element. What can be |
| configured for an element depends on what type of element it is.</p> |
| |
| <div class="clear"></div><div class="note">The Test Tree itself can be manipulated by dragging and dropping components around the test tree.</div><div class="clear"></div> |
| </div> |
| |
| <div class="subsection"><h2 id="saving">3.4 Saving the Test Plan<a class="sectionlink" href="#saving" title="Link to here">¶</a></h2> |
| <p>Although it is not required, we recommend that you save the Test Plan to a |
| file before running it. To save the Test Plan, select "Save" or "Save Test Plan As …" from the |
| File menu (with the latest release, it is no longer necessary to select the |
| Test Plan element first).</p> |
| |
| <div class="clear"></div><div class="note">JMeter allows you to save the entire Test Plan tree or |
| only a portion of it. To save only the elements located in a particular "branch" |
| of the Test Plan tree, select the Test Plan element in the tree from which to start |
| the "branch", and then click your right mouse button to access the "Save Selection As …" menu item. |
| Alternatively, select the appropriate Test Plan element and then select "Save Selection As …" from |
| the Edit menu. |
| </div><div class="clear"></div> |
| </div> |
| |
| <div class="subsection"><h2 id="run">3.5 Running a Test Plan<a class="sectionlink" href="#run" title="Link to here">¶</a></h2> |
| <p>To run your test plan, choose "Start" (Control + r) from the "Run" menu item. |
| When JMeter is running, it shows a small green box at the right hand end of the section just under the menu bar. |
| You can also check the "Run" menu. |
| If "Start" is disabled, and "Stop" is enabled, |
| then JMeter is running your test plan (or, at least, it thinks it is).</p> |
| <p> |
| The numbers to the left of the green box are the number of active threads / total number of threads. |
| These only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode. |
| </p> |
| <div class="clear"></div><div class="note">Using GUI mode as described here should only be used when debugging your Test Plan. To run the real load test, use NON-GUI mode.</div><div class="clear"></div> |
| </div> |
| |
| <div class="subsection"><h2 id="stop">3.6 Stopping a Test<a class="sectionlink" href="#stop" title="Link to here">¶</a></h2> |
| <p> |
| There are two types of stop command available from the menu: |
| <ul> |
| <li>Stop (Control + '.') - stops the threads immediately if possible. |
| Many samplers are Interruptible which means that active samples can be terminated early. |
| The stop command will check that all threads have stopped within the default timeout, which is 5000 ms = 5 seconds. |
| [This can be changed using the JMeter property <span class="code">jmeterengine.threadstop.wait</span>] |
| If the threads have not stopped, then a message is displayed. |
| The Stop command can be retried, but if it fails, then it is necessary to exit JMeter to clean up. |
| </li> |
| <li>Shutdown (Control + ',')- requests the threads to stop at the end of any current work. |
| Will not interrupt any active samples. |
| The modal shutdown dialog box will remain active until all threads have stopped.</li> |
| </ul> |
| If Shutdown is taking too long. Close the Shutdown dialog box and select Run/Stop, or just press Control + '.'. |
| </p> |
| <p> |
| When running JMeter in non-GUI mode, there is no Menu, and JMeter does not react to keystrokes such as Control + '.'. |
| So JMeter non-GUI mode will listen for commands on a specific port (default 4445, see the JMeter property <span class="code">jmeterengine.nongui.port</span>). |
| JMeter supports automatic choice of an alternate port if the default port is being used |
| (for example by another JMeter instance). In this case, JMeter will try the next higher port, continuing until |
| it reaches the JMeter property <span class="code">jmeterengine.nongui.maxport</span>) which defaults to 4455. |
| If <span class="code">maxport</span> is less than or equal to <span class="code">port</span>, port scanning will not take place. |
| <br> |
| The chosen port is displayed in the console window. |
| <br> |
| The commands currently supported are: |
| <ul> |
| <li>Shutdown - graceful shutdown</li> |
| <li>StopTestNow - immediate shutdown</li> |
| </ul> |
| These commands can be sent by using the <span class="code">shutdown[.cmd|.sh]</span> or <span class="code">stoptest[.cmd|.sh]</span> script |
| respectively. The scripts are to be found in the JMeter <span class="code">bin</span> directory. |
| The commands will only be accepted if the script is run from the same host. |
| </p> |
| </div> |
| |
| <div class="subsection"><h2 id="error_reporting">3.7 Error reporting<a class="sectionlink" href="#error_reporting" title="Link to here">¶</a></h2> |
| <p> |
| JMeter reports warnings and errors to the jmeter.log file, as well as some information on the test run itself. |
| JMeter shows the number of warnings/errors found in jmeter.log file next to the warning icon (triangle) at the right hand end of its window. |
| Click on the warning icon to show the jmeter.log file at the bottom of JMeter's window. |
| Just occasionally there may be some errors that JMeter is unable to trap and log; these will appear on the command console. |
| If a test is not behaving as you expect, please check the log file in case any errors have been reported (e.g. perhaps a syntax error in a function call). |
| </p> |
| <p> |
| Sampling errors (e.g. HTTP 404 - file not found) are not normally reported in the log file. |
| Instead these are stored as attributes of the sample result. |
| The status of a sample result can be seen in the various different Listeners. |
| </p> |
| </div> |
| |
| </div><ul class="pagelinks"><li><a href="get-started.html">< Prev</a></li><li><a href="../index.html">Index</a></li><li><a href="test_plan.html">Next ></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 © |
| 1999 – |
| 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> |