<?xml version="1.0"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at
 
       http://www.apache.org/licenses/LICENSE-2.0
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<document>
  <properties>
	 <author email="bburns@apache.org">Brendan Burns, et al.</author>
	 <title>Apache JMeter</title>
  </properties>
  <body>
	<section name="Apache JMeter">
	<p>
	  <b>Apache JMeter</b> is a 100% pure Java desktop 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 (files, Servlets, Perl scripts, Java Objects, Data Bases and
	  Queries, FTP Servers and more). It can be used to simulate a heavy
load on a server, network or object to test its strength or to analyze
overall performance under different load types. You can use it to make a
graphical analysis of performance or to test your server/script/object
behavior under heavy concurrent load.
</p>
<h2>What does it do?</h2>
<p>Apache JMeter features include:</p>
<ul>
	<li>Can load and performance test many different server types:
	    <ul>
	    <li>Web - HTTP, HTTPS</li>
	    <li>SOAP</li>
	    <li>Database via JDBC</li>
	    <li>LDAP</li>
	    <li>JMS</li>
	    <li>Mail - POP3</li>
	    </ul>
	</li>
	<li>Complete portability and <b>100% Java purity</b>.</li>
	<li>Full <b>Swing</b> and lightweight component support (precompiled JAR uses packages
		<code>javax.swing.*</code>).</li>
	<li>Full <b>multithreading</b> framework allows concurrent sampling by many threads and
		simultaneous sampling of different functions by seperate thread groups.</li>
	<li>Careful <b>GUI</b> design allows faster operation and more precise timings.</li>
	<li>Caching and offline analysis/replaying of test results.</li>
	<li><b>Highly Extensible:</b>
	  <ul>
		<li>Pluggable Samplers allow unlimited testing capabilities.</li>
		<li>Several load statistics may be choosen with <b>pluggable timers</b>.</li>
		<li>Data analysis and <b>visualization plugins</b> allow great extendibility
		as well as personalization.</li>
		<li>Functions can be used to provide dynamic input to a test or provide data manipulation.</li>
		<li>Scriptable Samplers (BeanShell is fully supported; and there is a sampler which supports BSF-compatible languages)</li>
	  </ul>
	</li>
</ul>
<h2>JMeter is not a browser</h2>
<p>
JMeter is not a browser.
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 viewed at a time).
</p>

<h2>How do I do it?</h2>
<ul>
<li><a href="usermanual/index.html">Using JMeter</a></li>
<li><a href="http://wiki.apache.org/jakarta-jmeter/">JMeter Wiki</a></li>
<li><a href="http://wiki.apache.org/jakarta-jmeter/JMeterFAQ">JMeter FAQ (Wiki)</a></li>
<li><a href="api/index.html">Javadoc API documentation</a></li>
<li><a href="localising/index.html">JMeter Localisation (Translator's Guide)</a></li>
<li><a href="building.html">Building JMeter and Add-Ons</a></li>
</ul>
<h2>Tutorials (PDF)</h2>
<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>
<h2>Further Information About JMeter</h2>
<ul>
<li><a href="changes.html">Change List</a></li>
<li><a href="known_bugs.html">Known Bugs</a></li>
<li><a href="license.html">License</a></li>
<li><a href="http://wiki.apache.org/jakarta-jmeter/JMeterCommitters">Contributors</a></li>
</ul>
</section>
</body>
</document>
