You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by bb...@apache.org on 2001/03/07 07:38:37 UTC
cvs commit: jakarta-jmeter/xdocs #index.xml# bugs.xml changes.xml contributing.xml extending.xml how_to_use_jmeter.xml httpsamplercontroller.xml index.xml installing.xml jdbcsamplercontroller.xml todo.xml velocity.properties
bburns 01/03/06 22:38:37
Added: xdocs #index.xml# bugs.xml changes.xml contributing.xml
extending.xml how_to_use_jmeter.xml
httpsamplercontroller.xml index.xml installing.xml
jdbcsamplercontroller.xml todo.xml
velocity.properties
Log:
added xdocs dir
Revision Changes Path
1.1 jakarta-jmeter/xdocs/#index.xml#
Index: #index.xml#
===================================================================
<?xml version="1.0"?>
<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 or CGI, Servlets, Perl scripts, Java Objects). It may well be used to simulate a heavy
load on a server, network or object to test its strength or to analyse 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>
<p>
<a HREF="how_to_use_jmeter.html">Using JMeter</a>
</p>
<h2>What does it do?</h2>
<p>Apache JMeter features include:</p>
<ul>
<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>Pluggable Samplers allow unlimited testing capabilities.</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>Several load statistics may be choosen with <b>pluggable timers</b>.</li>
<li>Data analisys and <b>visualisation plugins</b> allow great extendibility as well as
personalization.</li>
<li>Careful <b>GUI</b> design allows faster operation and more precise timings.</li>
</ul>
<p>
Here you find all the information you need to use, understand and enhance Apache JMeter.
</p>
<ul>
<li><a HREF="license.html">Public license</a></li>
<li><a href="dist">Download</a></li>
<li><a HREF="installing.html">Installation</a></li>
<ul>
<li><a HREF="installing.html#requirements">System requirements</a></li>
<li><a HREF="installing.html#installing">Installing Apache JMeter</a></li>
</ul>
<li><a HREF="running.html">Running Apache JMeter</a></li>
<ul>
<li><a HREF="running.html#scripts">Using system wrappers</a></li>
<li><a HREF="running.html#command">From the command line</a></li>
</ul>
<li><a HREF="how_to_use_jmeter.html">Using JMeter</a></li>
<li>
<a HREF="extending.html">Extending/Customizing JMeter for your needs</a>
</li>
<li><a HREF="api/index.html">Code documentation (javadoc)</a></li>
<li><a HREF="changes.html">Changes history</a></li>
<li><a href="bugs.html">Known bugs</a></li>
<li><a href="todo.html">Wish and Todo List</a></li>
<li><a HREF="contributing.html">How to contribute</a></li>
</ul>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/bugs.xml
Index: bugs.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>Known Bugs</title>
</properties>
<body>
<section name="Known Bugs">
<ul>
<li>The scrolling bar of the graphical plot visualizer has fixed size.</li>
<li>Thread overload may false results due to garbage collection interference.</li>
<li>Code design in not as good as it should be, as usual ;-).</li>
</ul>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/changes.xml
Index: changes.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>History of Changes</title>
</properties>
<body>
<section name="History of Changes">
<p>
<b>Changes are chronologically ordered from top (most recent) to bottom
(least recent)</b>
</p>
<p>
<b>Apache JMeter 1.5.1</b>
</p>
<p>
<b>Contributors</b> - If I missed any, please let me know (<a href="mail:mstover1@rochester.rr.com">
Michael Stover</a>):
<ul>
<li>Brendan Burns</li>
<li>Michael Stover</li>
<li>Jeff Pajor</li>
<li>Tom Wiedenhoeft</li>
<li>Matthew Daniel</li>
<li>Steve Gentle</li>
<li>Tom Schneider</li>
</ul>
<b>Changes:</b>
<h3>Version 1.5.1</h3>
<ul>
<li>Fixed bug that caused cookies not to be read if header name case not as expected.</li>
<li>Clone entries before sending to sampler - prevents relocations from messing up information across threads</li>
<li>Minor bug fix to convenience dialog for adding paramters to test sample. Bug prevented entries in dialog from appearing in test sample.</li>
<li>Added xerces.jar to distribution</li>
<li>Added junit.jar to distribution and created a few tests.</li>
<li>Started work on new framework. New files in cvs, but do not effect program yet.</li>
<li>Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer.</li>
</ul>
</p>
<p>
<h3>Version 1.5</h3>
<ul>
<li>Abstracted out the concept of the Sampler, SamplerController, and TestSample.
A Sampler represents code that understands a protocol (such as HTTP, or FTP, RMI,
SMTP, etc..). It is the code that actually makes the connection to whatever is
being tested.
A SamplerController represents code that understands how to organize and run a group
of test samples. It is what binds together a Sampler and it's test samples and runs them.
A TestSample represents code that understands how to gather information from the
user about a particular test. For a website, it would represent a URL and any
information to be sent with the URL.</li>
<li>The UI has been updated to make entering test samples more convenient.</li>
<li>Thread groups have been added, allowing a user to setup multiple test to run
concurrently, and to allow sharing of test samples between those tests.</li>
<li>It is now possible to save and load test samples.</li>
<li>....and many more minor changes/improvements...</li>
</ul>
</p>
<p>
<b>Apache JMeter 1.4.1-dev</b>
(<a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>)
<ul>
<li>Cleaned up URLSampler code after tons of patches for better readability. (SM)</li>
<li>Made JMeter send a special "user-agent" identifier. (SM)</li>
<li>Fixed problems with redirection not sending cookies and authentication info and removed
a warning with jikes compilation. Thanks to <a href="mailto:wtanaka@yahoo.com">Wesley
Tanaka</a> for the patches (SM)</li>
<li>Fixed a bug in the URLSampler that caused to skip one URL when testing lists of URLs and
a problem with Cookie handling. Thanks to <a
href="mailto:gjohnson@investlearning.com">Graham Johnson</a> for the patches (SM)</li>
<li>Fixed a problem with POST actions. Thanks to <a href="mailto:sschaub@bju.edu">Stephen
Schaub</a> for the patch (SM)</li>
</ul>
</p>
<p>
<b>Apache JMeter 1.4</b> - Jul 11 1999
(<a href="mailto:cimjpno@be.ibm.com">Jean-Pierre Norguet</a>, <a
href="mailto:stefano@apache.org">Stefano Mazzocchi</a>)
<ul>
<li>Fixed a problem with POST actions. Thanks to <a href="mailto:bburns@labs.gte.com">Brendan
Burns</a> for the patch (SM)</li>
<li>Added close button to the About box for those window managers who don't provide it.
Thanks to Jan-Henrik Haukeland for pointing it out. (SM)</li>
<li>Added the simple Spline sample visualizer (JPN)</li>
</ul>
</p>
<p><b>Apache JMeter 1.3</b> - Apr 16 1999
(<a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>, <a
href="mailto:luta.raphael@networks.vivendi.net">Rapha�l Luta</a>)
<ul>
<li>Run the Garbage Collector and run finalization before starting to sampling to ensure
same state every time (SM)</li>
<li>Fixed some NullPointerExceptions here and there (SM)</li>
<li>Added HTTP authentication capabilities (RL)</li>
<li>Added windowed sample visualizer (SM)</li>
<li>Fixed stupid bug for command line arguments. Thanks to <a
href="mailto:jbracer@infoneers.com">Jorge Bracer</a> for pointing this out (SM)</li>
</ul>
</p>
<p><b>Apache JMeter 1.2</b> - Mar 17 1999
(<a href="mailto:sdowd@arcmail.com">Sean Dowd</a>, <a href="mailto:stefano@apache.org">Stefano
Mazzocchi</a>)
<ul>
<li>Integrated cookie capabilities with JMeter (SM)</li>
<li>Added the Cookie manager and Netscape file parser (SD)</li>
<li>Fixed compilation error for JDK 1.1 (SD)</li>
</ul>
</p>
<p>
<b>Apache JMeter 1.1</b> - Feb 24 1999
(<a href="mailto:sdowd@arcmail.com">Sean Dowd</a>, <a href="mailto:stefano@apache.org">Stefano
Mazzocchi</a>)
<ul>
<li>Created the opportunity to create URL aliasing from the properties file as well as the
ability to associate aliases to URL sequences instead of single URLs (SM) Thanks to <a
href="mailto:chatfield@evergreen.com">Simon Chatfield</a> for the very nice suggestions
and code examples.</li>
<li>Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM)</li>
<li>Added the known bug list (SM)</li>
<li>Removed the Java Apache logo (SM)</li>
<li>Fixed a couple of typos (SM)</li>
<li>Added UNIX makefile (SD)</li>
</ul>
</p>
<p>
<b>Apache JMeter 1.0.1</b> - Jan 25 1999
(<a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>)
<ul>
<li>Removed pending issues doc issues (SM)</li>
<li>Fixed the unix script (SM)</li>
<li>Added the possibility of running the JAR directly using "java -jar
ApacheJMeter.jar" with Java 2 (SM)</li>
<li>Some small updates: fixed Swing location after Java 2(tm) release, license update and
small cleanups (SM)</li>
</ul>
</p>
<p>
<b>Apache JMeter 1.0</b> - Dec 15 1998
(<a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>)
<ul>
<li>Initial version. (SM)</li>
</ul>
</p>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/contributing.xml
Index: contributing.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>Contributing to The Jakarta Project</title>
</properties>
<body>
<section name="Contributing To The Jakarta Project">
<p>
The Jakarta Project is an open volunteer project. This means that anyone may
partecipate to the development process even actively (writing, discussing, proposing code)
or passively (listening and learning). You are more than welcome to join our group of
developers if you feel you are ready for it and wish to give a hand.
</p>
<p>
If you want more info about Jakarta development (mailing list, CVS info, code
style, subprojects, people to ask) check out our web site:
</p>
<a HREF="http://jakarta.apache.org">
<p>http://jakarta.apache.org</p></a>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/extending.xml
Index: extending.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>Extending JMeter</title>
</properties>
<body>
<section name="Extending JMeter">
<font color="red"><strong>Note to developers: JMeter is undergoing large changes. The following
description of JMeter's architecture will likely change in the near future. If you
would like your changes to work with an upcoming JMeter 1.6, please join our mailing
list, and we will work with you and your modifications.</strong></font>
<p><b>Customizing JMeter to suit your needs.</b></p>
<h3>Extensible Interfaces</h3>
<p>
There are five basic objects in JMeter which provide extensibility:
<ul>
<li><a href="#visualizers">Visualizers</a> represent the sampling data which is recorded.</li>
<li><a href="#timers">Timers</a> specify the delay between samples.</li>
<li><a href="#samplercontrollers">SamplerControllers</a> hold information about all the test cases to be sampled,
and overall information about how the test is conducted.</li>
<li><a href="#samplers">Samplers</a> are the classes that actually do the sampling of a particular protocol.</li>
<li><a href="#testsamples">TestSamples</a> hold information about a particular test case to be sampled.</li>
</ul>
</p>
<p>
<a name="visualizers"></a>
<h3>Visualizers</h3>
The <code>Visualizer</code> interface exists in the <code>org.apache.jmeter.visualizers</code> package.
JMeter maintains an instance of each visualizer it is aware of for each thread group currently available to the user.
A visualizer provides a method of recording the data which JMeter generates.
A visualizer may represent the data graphically (GraphVisualizer),
persistently (FileVisualizer) or both (TBD).
The visualizer contains three methods:
<dl>
<dt><code>add(SampleResult result)</code> adds data to the visualization.</dt>
<dd>
JMeter calls the <code>add</code> method to include new data in the visualizer.
The visualizer should add the data into its data representation.
</dd>
<dt><code>clear()</code> clears all data in the visualizer currently</dt>
<dd>
JMeter calls <code>clear</code> when the user requests that all visualizers be cleared. When the <code>clear</code> method is called the visualizer should clear all data from its representation and re-initialize itself.
</dd>
<dt><code>getControlPanel()</code> obtains the GUI for the visualizer</dt>
<dd>
JMeter calls <code>getControlPanel</code> at start up time to prepare the
visualizer for display.
</dd>
</dl>
<a name="timers"></a>
</p>
<p>
<h3>Timers</h3>
Timers provide a framework for delaying in between samples. This is important in order to obtain a true balanced load on a function rather than a calm-STORM-calm-STORM-calm... pattern. Timers contain two methods:
<dl>
<dt><code>delay()</code> wait for a Timer specific amount of time</dt>
<dd>JMeter calls this function prior to every sample. The Timer should wait for a period of time and then return.</dd>
<dt><code>set()</code> prepare for sampling</dt>
<dd>JMeter calls this function prior to the begining of a test session. The timer should initialize itself, read any values from its UI and prepare for operation.
</dd>
</dl>
</p>
<p>
<a name="samplercontrollers"></a>
<h3>SamplerControllers</h3>
The sampler controller is by far the most complicated, but also the most powerful, interface in JMeter. It allows a user to customize what, where and when JMeter tests. It provides six methods:
<dl>
<dt><code>start()</code></dt>
<dd>
JMeter calls this immediatly prior to starting a test. It is most often use to disable the SamplerController's GUI.
</dd>
<dt><code>stop()</code></dt>
<dd>
JMeter calls this when a user requests a stop to a test. It is most often used to re-enable the SamplerController's GUI.
</dd>
<dt><code>getControlPanel()</code> Get the GUI for the SamplerController</dt>
<dd>
JMeter calls this at start up to create the its GUI. This is how a user enters
information into the SamplerController.
</dd>
<dt><code>getName()</code> Get the SamplerController's display name.</dt>
<dd>
JMeter uses this name in the list of SamplerControllers that it displays.
</dd>
<dt><code>getDefaultThreadGroups()</code></dt>
<dd>Gets the default list of threadgroups.</dd>
<dt><code>getSampleThreads(String threadGroup,int numThreads)</code></dt>
<dd>When the user hits start, use this method to get all the JMeterThread objects you want for a threadgroup. Each JMeterThread
object implements Runnable and it is used to sample the test entries.
</dd>
</dl>
</p>
<p>
<a name="samplers"></a>
<h3>Samplers</h3>
Samplers are simple - they are the objects that know the protocol of that which
you wish to sample. The HTTPSampler knows how to request a URL from a web server, for
instance.
The interface for Sampler is as follows:
<dl>
<dt><code>public SampleResult sample(Entry e)</code></dt>
<dd>JMeterThread implementations will loop through all the test samples given
to them, and call the sample method on the Sampler (also given to them) for each
test entry. SampleResult is essentially a Map containing information about
the sampling (timing data is included, as well as the test response from the url).
</dd>
</dl>
</p>
<p>
<a name="testsamples"></a>
<h3>TestSample</h3>
TestSamples are objects that collect information from users about each test sample
the user wants to test. The TestSample object is also responsible for serving
up its test entries. The interface:
<dl>
<dt><code>public java.awt.Container getGUI()</code></dt>
<dd>Returns the GUI used to collect information from the user.</dd>
<dt><code>public Entry[] getEntries()</code></dt>
<dd>Gets a list of entries to be sampled from the TestSample object</dd>
<dt><code>public String[] getThreadGroups()</code></dt>
<dd>Get all the thread groups the user selected for this TestSample</dd>
<dt><code>public void setThreadGroups(String[] threadGroups)</code></dt>
<dd>Set the thread groups the user may choose from</dd>
<dt><code>public String getName()</code></dt>
<dd>Get a name for this TestSample</dd>
<dt><code>public void setName(String name)</code></dt>
<dd>Set the name for this TestSample</dd>
<dt><code>public void reset()</code></dt>
<dd>inform the test sample that a sampling run is starting</dd>
</dl>
</p>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/how_to_use_jmeter.xml
Index: how_to_use_jmeter.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>Using JMeter</title>
</properties>
<body>
<section name="Using JMeter">
<h2>Using JMeter effectively consists of the following activities</h2>:
<UL>
<li><a HREF="#Choosing_a_SamplerController">Choosing a SamplerController</a></li>
<li><a HREF="#Creating_Test_Samples">Creating Test Samples</a></li>
<li><a HREF="#Choosing_a_delay">Choosing a delay</a></li>
<li><a HREF="#Managing_Thread_Groups">Managing Thread Groups</a></li>
<li><a HREF="#Choosing_a_Visualizer">Choosing a Visualizer</a></li>
<li><a HREF="#Running_the_test script">Running the test script</a></li>
</UL>
<p>
<a NAME="Choosing_a_SamplerController"></a>
<H2>Choosing A SamplerController</H2>
JMeter has two tabs - <b>setup</b> and <b>run</b>.
Within <b>setup</b>, the default SamplerController is initially displayed. You will find a drop down
select box that allows you to select any SamplerController you wish to use. When you make this
selection, the appropriate GUI will be displayed.
</p>
<p>The SamplerController determines the basic kind of sampling you will do. Choose the "Advanced HTTP tester" for advanced web page sampling, and the "Simple HTTP Tester" for testing single web pages quickly, and choose the "JDBC Base Sampler" to sample your database.
</p>
<p>The available SamplerControllers are (Click links for more detailed information):
<UL>
<li><a HREF="simplehttpcontroller.html">Simple HTTP Tester</a></li>
<li><a HREF="httpsamplercontroller.html">Advanced HTTP tester</a></li>
<li><a href="jdbcsamplercontroller.html">JDBC Base Sampler</a></li>
</UL>
</p>
<p>
<a NAME="Creating_Test_Samples"></a>
<H2>Creating Test Samples</H2>
A test sample represents an entry to be sampled. It holds all the information needed about conducting a sample. For instance,
an <b>HTTPTestSample</b> might hold information about the <b>URL</b> to be hit, whether <b>POST</b> or <b>GET</b> is to be used, and what argument
name-value pairs should be passed on. The Test Sample will present a GUI for the user to enter this information.
</p>
<p>
Creating test samples is dictated by the workings of the SamplerController you chose. In general, the SamplerController
will display a list of test samples you've created, and you will be able to create more, and there may be different kinds
of test samples you can create. See the link for the SamplerController you are using to find out what test samples are
available to you and how to use them.
</p>
<a NAME="Choosing_a_delay"></a>
<H2>Choosing a delay</H2>
<p>
Delay represents the number of milliseconds JMeter pauses between samples in each sampling thread. There are a number of
delay modules you can choose from on the <EM>setup</EM> panel, and they should be mostly self-explanatory.
You may choose a timer for each thread group (actually, you must, or each thread group
will use the default timer).
</p>
<p>
<a NAME="Managing_Thread_Groups"></a>
<H2>Managing Thread Groups</H2>
Thread groups are managed in the <EM>run</EM> panel.
</p>
<p>
By default, there is only one thread group to start. It is called "Group 1". You may simply use this one group, or you
can add more groups by typing in the name of the group you wish to add above the list and hitting <code>Enter</code>. For
each thread group, you can choose a number of threads from 1 to 20 (this can be changed in jmeter.properties). There is no limit on the number of thread groups you
can have, except for the limitations of your machine, and how many threads it can handle.
</p>
<p>
The thread groups you add also become available as choices within your test samples you create. If you add a thread group (say
"Group 2"), and then, from the <EM>setup</EM> panel, you create a new test sample, you will notice that both Group 1 and Group 2
show up in your list of thread groups to choose from. A particular test sample may be part of one or more thread groups. This
allows you to set up two parallel groups of test samples that will execute simultaneously. The two test groups could, however, share
a common test sample, such as a one-time login sample.
</p>
<p>
Thread groups are also important to visualizers, since you may choose a different visualizer for each thread group.</p>
<p><b>Note:</b> if you are not clear on what "threadgroup" is referring to exactly, don't worry - you aren't alone. JMeter is no less
powerful a tool if you only ever use the single default threadgroup. You may use any number of threads in your default threadgroup
(by modifying jmeter.properties). Each thread represents a different "user" hitting your site. All test samples will be
assigned to the single default thread group automatically if you never create an additional thread group. JMeter 1.6 will
hopefull deal with this issue better.
</p>
<p>
<a NAME="Choosing_a_Visualizer"></a>
<H2>Choosing a Visualizer</H2>
Visualizers are managed in the <EM>run</EM> panel in the section labeled <b>Actions</b>.
</p>
<p>
For each thread group, you may select a different visualizer. Visualizers show the timing data that JMeter collects during sampling.
As you select different thread groups, the visualizer display switches to the visualizer you selected for that thread group. In
this way, you can keep an eye on all your visualizers while JMeter runs.
<ul>
<li><a href="visualizers.html#file">File Visualizer</a></li>
<li><a href="visualizers.html#graph">Graphing Visualizer</a></li>
<li><a href="visualizers.html#windowed">Windowed Plotting Visualizer</a></li>
<li><a href="visualizers.html#email">E-Mail Notification Visualizer</a></li>
<li><a href="visualizers.html#scrolling">Scrolling Bars Visualizer</a></li>
<li><a href="visualizers.html#spline">Spline Curve Visualizer</a></li>
<li><a href="visualizers.html#text">Text Results Visualizer</a></li>
</ul>
</p>
<p>
<img src="images/jmeter_running.jpg" align="right" />
<a NAME="Running_the_test script"></a>
<H2>Running the test script</H2>
Once you have chosen your sampler controller, created all your test samples, selected a delay, added any thread groups, and
selected your visualizers, you simply choose "start" from the "Run" menu, or hit
<code>ctrl-s</code>. To stop, choose "Stop" from the "Run" menu, or hit <code>ctrl-.</code>. Switch to the <EM>run</EM> panel to watch it run.
</p>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/httpsamplercontroller.xml
Index: httpsamplercontroller.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>HttpSamplerController</title>
</properties>
<body>
<section name="Advanced HTTP Tester">
<img src="images/jmeter.jpg" align="right"/>
<p>
The Advanced HTTP Tester's purpose is to
control the logic of sampling web URL's.
</p>
The GUI for the Advanced HTTP Tester lets you do the following:
<dl>
<dt><strong>Enable cookies</strong></dt>
<dd>By clicking the checkbox enabling cookies, you enable JMeter to store and return cookies to and
from your test pages. Optionally, if you configure the cookies setup, you can select a Netscape-style cookie file to start JMeter off
with any cookies you like.
</dd>
<dt><strong>Enable authorization</strong></dt>
<dd>
<p>
By selecting this checkbox, you enable JMeter to enter authorization information (for pop-up style authorization requests)
if it is requested by the webserver.
Hit "Configure" and enter in your authorization information.
</p>
If you are using forms-based authorization, you will have to manually configure a Test Sample to hit that page with the
appropriate arguments. Please be sure to click the "only hit this URL once" checkbox for the Test Sample (so that JMeter doesn't
repeatedly sample the authorization page).
</dd>
<dt><strong>Create and edit test samples</strong></dt>
<dd>using the drop down select list, choose a type of test sample you wish to create, and click the "create" button.
As you create more and more, they will be added to your list. To
edit one, simply select it from the list, and click the "edit" icon. To delete samples, select all the samples you
wish to delete, and click the trashcan icon.
<p>
Additionally, if you have added a SAX XML parser to your classpath (such as xerces.jar), you will see two additional icons -
for <b>save</b> and <b>load</b>. To save all the test samples, hit save and choose a directory and filename to save to.
</p>
<p>
<b>Note:</b>JMeter creates a directory called "testsamples" within the directory you select, and each Test Sample is saved
in an individual file within this created directory. The file you specifically selected is an "script" file that lists all the
Test Samples that it contains - but it simply contains pointers to the individual Test Sample files. This allows you to save large
lists of Test Samples, and still be able to use them separately from each other as you like. Currently, JMeter overwrites files
without warning you, so be careful.
Test Samples available:
</p>
<ul><li><a href="#HTTPBaseTestSample">HTTPBaseTestSample</a></li></ul>
</dd>
</dl>
<a NAME="HTTPBaseTestSample"></a>
</section>
<section name="HTTPBaseTestSample">
<img align="right" src="images/test_sample.jpg"/>
<p>
HTTPBaseTestSample requires the following input:
</p>
<dl>
<dt><strong>URL</strong></dt>
<dd>Enter the URL of the page you wish to test. Do not include any argument-value pairs
</dd>
<dt><strong>GET or POST</strong></dt>
<dd>Select either the GET or POST checkbox to indicate the method that should be used to sample the URL
</dd>
<dt><strong>Hit URL once only</strong></dt>
<dd>Indicate to JMeter if you wish this URL to be dropped from the sample list after it is first sampled. This can be used for
login pages so that JMeter will login once, but will not do so repeatedly.
</dd>
<dt><strong>Interleave</strong></dt>
<dd>Indicate to JMeter that multiple test entries generated from this test sample should be
sampled one-at-a-time - ie interleaved with entries from other test samples. This is
relevant only if multiple argument values have been entered for one or more arguments.
</dd>
<dt><strong>Select one or more thread groups</strong></dt>
<dd>This test sample will be part of whichever thread groups you select here.
</dd>
<dt><strong>Arguments</strong></dt>
<dd>You may add as many name-value pairs as you wish here. Be sure to hit <code>Enter</code> after your last entry since it is
possible to enter a value into the table, and then click "OK" with the mouse. Although the value
is saved in the table, JMeter will not see it until you hit <code>Enter</code>. This is a bug.
<p>
It is also possible to enter multiple values for a single argument name. The easiest way to do this
is to select a row and then hit the "edit" button.
This will pop up a dialog by which you can add as many values as you like to the field. Another way to do it is enter
multiple values, each quoted and separated by commas.
</p>
<p>
If you enter multiple values for a field, JMeter will create separate test entries automatically for
each possible combination of name-value pairs. This is a time-saving device. An example of use would
be if you wish to test a search script, and you want to test a large number of different search strings.
Normally, you would have to create a new test sample for each search term, even though the URL, the method,
and all the other arguments are the same across all the test samples. Using this method, however,
you only need to create one test sample, and load the search string argument with multiple values.
</p>
<p>
If your test sample has multiple values, AND you've selected "Interleave", JMeter will use just
one of the combinations to sample each time through the list of test samples (it's not random, they still go in
succession). Otherwise, JMeter will
do all the combinations each time the test sample comes around.
</p>
</dd>
</dl>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<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 or CGI, Servlets, Perl scripts, Java Objects). It may well be used to simulate a heavy
load on a server, network or object to test its strength or to analyse 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>
<p>
<a HREF="how_to_use_jmeter.html">Using JMeter</a>
</p>
<h2>What does it do?</h2>
<p>Apache JMeter features include:</p>
<ul>
<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>Pluggable Samplers allow unlimited testing capabilities.</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>Several load statistics may be choosen with <b>pluggable timers</b>.</li>
<li>Data analisys and <b>visualisation plugins</b> allow great extendibility as well as
personalization.</li>
<li>Careful <b>GUI</b> design allows faster operation and more precise timings.</li>
</ul>
<p>
Here you find all the information you need to use, understand and enhance Apache JMeter.
</p>
<ul>
<li><a HREF="license.html">Public license</a></li>
<li><a href="dist">Download</a></li>
<li><a HREF="installing.html">Installation</a></li>
<ul>
<li><a HREF="installing.html#requirements">System requirements</a></li>
<li><a HREF="installing.html#installing">Installing Apache JMeter</a></li>
</ul>
<li><a HREF="running.html">Running Apache JMeter</a></li>
<ul>
<li><a HREF="running.html#scripts">Using system wrappers</a></li>
<li><a HREF="running.html#command">From the command line</a></li>
</ul>
<li><a HREF="how_to_use_jmeter.html">Using JMeter</a></li>
<li>
<a HREF="extending.html">Extending/Customizing JMeter for your needs</a>
</li>
<li><a HREF="api/index.html">Code documentation (javadoc)</a></li>
<li><a HREF="changes.html">Changes history</a></li>
<li><a href="bugs.html">Known bugs</a></li>
<li><a href="todo.html">Wish and Todo List</a></li>
<li><a HREF="contributing.html">How to contribute</a></li>
</ul>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/installing.xml
Index: installing.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>Installing JMeter</title>
</properties>
<body>
<section name="requirements">
<a NAME="requirements"></a>
<blockquote>
<ul>
<li><b>Java Environment</b><br/>
A fully compliant Java 1.2 environment is required for Apache JMeter to execute. (hopefully this will be changed back to 1.1 in the final release) Since
Apache JMeter uses only standard Java APIs (java.*), please, do not file in a bug report
if your JRE fails to execute Apache JMeter because a class implementation is missing, or
not fully compliant.</li>
<li><b>Java JFC</b> (Swing components)<br/>
Swing GUI extentions are required for Apache JMeter. Due to incompatibility in the package
names, the precompiled version works only with Swing placed under the package <b>javax.swing</b>
which is its final destination found in the Java 2(tm) platform. </li>
<li><b>Java Compiler</b> [optional]<br/>
A Java compiler is not needed since the distribution includes a precompiled java binary
archive. Note that a compiler is required if you plan to recompile the source code or if
you plan to build your own plugins.</li>
<li><b>SAX 1.0 XML Parser</b> [optional]<br/>
The SAX 1.0 libraries and a SAX compliant parser are necassary for
restoring of saved HTTPSamples and to compile Apache JMeter. In the spirit
of solidarity we recomend Apache's own
<a href="http://xml.apache.org">Xerces</a> parser.</li>
<li>
<a href="http://www.javasoft.com/products/javamail">
<b>Java Mail<sup><font size="-2">tm</font></sup></b></a> &
<a href="http://www.javasoft.com/beans/glasgow/jaf.html">
<b>javax.activation</b>
</a>
[optional]<br/>
The javax.mail & javax.activation packages are required to use the
MailVisualizer and to compile Apache JMeter. </li>
<li><b>JSSE</b> [optional]<BR/>
JSSE is used to provide an SSL implementation to enable testing of https protocol.</li>
</ul>
</blockquote>
<h2><a NAME="installing"></a>Installing Apache JMeter</h2>
<blockquote>
<p>If your system meets the above requirements, thanks to the beauty of Java you don't
have to do anything else: under the directory <tt>/bin </tt>you will find the binary
application and the system wrappers you need to run Apache JMeter. You may want to go the <a HREF="running.html">running instructions</a> to continue. </p>
<p>If the precompiled binary doesn't match your system (Swing package incompatibility) or
you simply want to recompile the source code, you may use the makefile that matches your
operating system under the directory <tt>/src</tt> or do it by hand. </p>
<h3>Using ant</h3>
<blockquote>
<p>JMeter has been configured to use the ant makefile replacement from the
<a href="jakarta.apache.org">jakarta project</a>. To build with ant:
<ul>
<li>move to the base of the jmeter distribution</li>
<li>run <code>ant install</code></li>
</ul>
</p>
</blockquote>
<h3>Using makefiles</h3>
<blockquote>
<p>Under both UNIX and Windows systems, building Apache JMeter is very simple: <ul>
<li>move your current directory to <tt>/src</tt></li>
<li>type <tt>make</tt></li>
</ul>
</p>
<p>Since those makefiles assume you have both <tt>javac</tt> and <tt>javadoc</tt>
installed in your path, if this is not the case or you simply want to use other tools, you
have to edit those files by hand and follow internal instructions. </p>
<p>When the make process is complete, a file named <tt>ApacheJMeter.jar</tt> will be
placed under the <tt>/bin</tt> directory. You may go to <a HREF="running.html">next
section</a> to see how to start the application you just built.</p>
</blockquote>
<h3>Doing it by hand</h3>
<blockquote>
<p>This section assumes knowledge about Java compilers and Java tools, such as <tt>javac</tt>,
<tt>javadoc</tt> and <tt>jar</tt>. </p>
<p>First thing you have to do is to compile the source files. To do this, you create a
temporary directory (say <tt>./src/temp</tt>), more to the /src directory and execute the
following command (all in one line) </p>
<blockquote>
<p><tt>javac -d ./temp ./org/apache/jmeter/timers/*.java
./org/apache/jmeter/visualizers/*.java ./org/apache/jmeter/samplers/*.java
./org/apache/jmeter/*.java</tt></p>
</blockquote>
<p>This should create all the right class files under the <tt>./temp directory.</tt> If
this doesn't work, check to see if the package <tt>swingall.jar</tt> resides in your
classpath and if the Swing classes reside under the <tt>com.sun.java.swing</tt>
directories. </p>
<p>When your done compiling the classes, you should copy all resources in the right place
executing </p>
<blockquote>
<p><tt>cp ./org/apache/jmeter/images/* ./temp/org/apache/jmeter/images/*<br/>
cp ./org/apache/jmeter/*.properties ./temp/org/apache/jmeter/*.properties</tt></p>
</blockquote>
<p>(of course windows users should change this a little to match system settings). Now you
are ready to build the jar archive by typing </p>
<blockquote>
<p><tt>jar cmf0 ./MANIFEST ../bin/ApacheJMeter.jar ./temp/.</tt></p>
</blockquote>
<p><tt>that will create the archive.</tt> </p>
<p>To create the javadoc documentation simply type this other command </p>
<blockquote>
<p><tt>javadoc -d ..\docs\api org.apache.jmeter org.apache.jmeter.timers
org.apache.jmeter.visualizers org.apache.jmeter.samplers</tt></p>
</blockquote>
<p>Now that everything is built, just go on to the <a HREF="running.html">next section</a>
to see how to run it. </p>
</blockquote>
</blockquote>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/jdbcsamplercontroller.xml
Index: jdbcsamplercontroller.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>JDBC SamplerController</title>
</properties>
<body>
<section name="JDBCSamplerController">
<img align="right" src="images/jdbc_controller.jpg"/>
<p>
JDBCSamplerController is currently the only alternative Sampler that JMeter comes with (actually, there is an FTPSamplerController,
but JMeter is not configured to make it available in the GUI by default).
</p>
<p>
The GUI for JDBCSamplerController lets you do the following:
<dl>
<dt><strong>Enter a username</strong></dt>
<dd>Enter a username that JMeter should use to connect to the database.</dd>
<dt><strong>Enter a password</strong></dt>
<dd>Enter a password that JMeter should use to connect to the database.</dd>
<dt><strong>Enter connect string</strong></dt>
<dd>Enter a connect string, or "URL" for JMeter to use to connect to the database.
example: jdbc:mysql://domain.com:3306/databasename</dd>
<dt><strong>Enter driver</strong></dt>
<dd>Enter a driver class name. example: org.mm.gjt.mysql.Driver</dd>
<dt><strong>Enter SQL query</strong></dt>
<dd>Enter an SQL query string - example: select * from users where username='jsmith'</dd>
</dl>
</p>
<p>
The JDBCSamplerController will submit your SQL string to the database with as many threads as you selected in the
thread group panel. Currently, this is the extent of the functionality of the JDBCSamplerController.
</p>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/todo.xml
Index: todo.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="bburns@apache.org">Brendan Burns, et al.</author>
<title>JMeter Wish and ToDo List</title>
</properties>
<body>
<section name="ToDo List">
<p>
List of those things yet to do, wishes, dreams, etc.. (in no particular
order)
</p>
<ul>
<li><strong>Greater Sampling Logic Control</strong>: Some sort of dynamic "scripting" for
JMeter allowing for samples to run based on the response from earlier samples.</li>
<li><strong>Better documentation</strong>: since JMeter evolved faster than its docs, its
documenation on how to use its features is underdeveloped. Better documents with example of
usage and common problems should be written.</li>
<li><STRONG>New modules:</STRONG> New SamplerControllers, TestSamples, and Samplers for testing different types of applications. HTTP is currently all the JMeter
supports. Some possibilities include:
<UL><li>FTP(currently being developed)</li>
<li>JDBC(currently being developed)</li>
<li>RMI</li>
<li>SMTP</li>
<li>JINI</li>
<li>Corba</li>
<li>HTTP-multiPart</li>
<li>Local Java Object</li>
</UL></li>
<li><STRONG>Improving visualizers:</STRONG> Currently, the visualizers only make use of the timing data - but much more than that is and can be supplied
to them. In the
short term, it would be nice to add a visualizer that displayed the full text
response from each sample, thus allowing the user to verify that things are
working correctly (ie - that the web server is returning correct results, and
that JMeter is functioning as expected).</li>
<li><strong>Adding reporters:</strong> Reporters would offer report generation based
on data collected by JMeter. For those looking for more information than
simply time per sample and average time, a reporter should be available.
Examples could include statistical reports, accuracy reports (eg what exactly
did the web page return - this could be used for QA testing).</li>
<li><strong>Improve Properties file structure:</strong> The properties file is taking
on more and more all the time, and it should probably be rethought and
restructured. Currently, the TestSamples an HTTPSamplerController "knows" is
hardcoded into the SamplerController, making it difficult for someone to
plug in a new TestSample to JMeter.</li>
<li><strong>Re-structure JMeter code</strong> so that any kind of test sample (http, jdbc,
ftp, etc) can be tested simultaneously. Make new modules easier to write by making
clearer abstractions. Abstract thread logic out from JMeter so that users can
choose how and in what order their entries are sampled.</li>
<li><strong>Make JMeter distributed</strong> Enable JMeter to take on a distributed,
but centrally controlled architecture, thus allowing JMeter to stress very large
sites and networks.</li>
<li><strong>Dynamic control while JMeter runs</strong> Enable users to change
options while JMeter runs - ie change number of threads running, start and stop
thread groups individually, add test samples on the fly, etc.</li>
</ul>
</section>
</body>
</document>
1.1 jakarta-jmeter/xdocs/velocity.properties
Index: velocity.properties
===================================================================
resource.loader.1.resource.path = ../jakarta-site2/xdocs/stylesheets
Re: cvs commit: jakarta-jmeter/xdocs #index.xml# bugs.xml
changes.xml contributing.xml extending.xml how_to_use_jmeter.xml
httpsamplercontroller.xml index.xml installing.xml
jdbcsamplercontroller.xml todo.xml velocity.properties
Posted by Jon Stevens <jo...@latchkey.com>.
on 3/6/01 10:38 PM, "bburns@apache.org" <bb...@apache.org> wrote:
> Added: xdocs #index.xml#
? why is the file named like that?
-jon
--
If you come from a Perl or PHP background, JSP is a way to take
your pain to new levels. --Anonymous
<http://jakarta.apache.org/velocity/ymtd/ymtd.html>