CINXE.COM
Apache JMeter - Apache JMeter™
<!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 - Apache JMeter™</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="./security.html">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://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</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> <div class="section"> <h1>Apache JMeter™</h1> <p> The <b>Apache JMeter™</b> application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. </p> <h2>What can I do with it?</h2> <p> Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications. <br> It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types. <br> </p> <p>Apache JMeter features include:</p> <ul> <li> Ability to load and performance test many different applications/server/protocol types: <ul> <li>Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)</li> <li>SOAP / REST Webservices</li> <li>FTP</li> <li>Database via JDBC</li> <li>LDAP</li> <li>Message-oriented middleware (MOM) via JMS</li> <li>Mail - SMTP(S), POP3(S) and IMAP(S)</li> <li>Native commands or shell scripts</li> <li>TCP</li> <li>Java Objects</li> </ul> </li> <li> Full featured Test IDE that allows fast Test Plan <b>recording (from Browsers or native applications), building and debugging</b>. </li> <li> <b><a href="usermanual/get-started.html#non_gui">CLI mode (Command-line mode (previously called Non GUI) / headless mode)</a></b> to load test from any Java compatible OS (Linux, Windows, Mac OSX, …) </li> <li> A complete and <b><a href="usermanual/generating-dashboard.html">ready to present dynamic HTML report</a></b> </li> <li> Easy correlation through ability to extract data from most popular response formats, <b><a href="usermanual/component_reference.html#CSS/JQuery_Extractor">HTML</a>, <a href="usermanual/component_reference.html#JSON_Extractor">JSON </a>, <a href="usermanual/component_reference.html#XPath_Extractor">XML</a> or <a href="usermanual/component_reference.html#Regular_Expression_Extractor">any textual format</a></b> </li> <li> Complete portability and <b>100% Java purity</b>. </li> <li> Full <b>multi-threading</b> framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups. </li> <li>Caching and offline analysis/replaying of test results.</li> <li> <b>Highly Extensible core:</b> <ul> <li>Pluggable Samplers allow unlimited testing capabilities.</li> <li> <b>Scriptable Samplers</b> (JSR223-compatible languages like <a href="http://groovy-lang.org">Groovy</a> and BeanShell) </li> <li> Several load statistics may be chosen with <b>pluggable timers</b>. </li> <li> Data analysis and <b>visualization plugins</b> allow great extensibility as well as personalization. </li> <li>Functions can be used to provide dynamic input to a test or provide data manipulation.</li> <li> Easy Continuous Integration through 3<sup>rd</sup> party Open Source libraries for Maven, Gradle and Jenkins. </li> </ul> </li> </ul> <h2>How do I do it?</h2> <ul> <li> <a href="usermanual/index.html">Using JMeter</a> to understand how to use it </li> <li> <a href="usermanual/component_reference.html">Component reference</a> to have detailed information for every Test element </li> <li> <a href="usermanual/functions.html">Functions reference</a> to have detailed information and examples for every function </li> <li> <a href="usermanual/properties_reference.html">Properties reference</a> for all properties that allow you to customize JMeter </li> <li> <a href="api/index.html">Javadoc API documentation</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">JMeter FAQ (Wiki)</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a> </li> <li> <a href="building.html">Building JMeter and Add-Ons</a> for advanced usage </li> </ul> <h2>JMeter is not a browser</h2> <p> JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time). </p> <h2>Tutorials</h2> <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> <h2>Further Information About JMeter</h2> <ul> <li> <a href="changes.html">Changes List</a> </li> <li> <a href="issues.html">Read about existing Issues (Bugs or Enhancements) or reporting new ones (please do it !)</a> </li> <li> <a href="https://www.apache.org/licenses/">License</a> </li> <li> <a href="mail.html">Mailing Lists</a> </li> <li> <a href="svnindex.html">Source Repositories</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a> </li> </ul> </div> <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 © 1999 – 2024 , 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>