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 ms...@apache.org on 2002/03/06 04:52:04 UTC
cvs commit: jakarta-jmeter/xdocs/usermanual best-practices.xml boss.xml build-adv-web-test-plan.xml build-db-test-plan.xml build-ftp-test-plan.xml build-jndi-test-plan.xml build-test-plan.xml component_reference.xml get-started.xml index.xml
mstover1 02/03/05 19:52:04
Modified: xdocs/stylesheets site.vsl
xdocs/usermanual best-practices.xml boss.xml
build-adv-web-test-plan.xml build-db-test-plan.xml
build-ftp-test-plan.xml build-jndi-test-plan.xml
build-test-plan.xml component_reference.xml
get-started.xml index.xml
Added: xdocs/demos URLRewritingExample.jmx
xdocs/images/screenshots url_rewrite_example_a.gif
url_rewrite_example_b.gif
Log:
Updating documentation a bunch
Revision Changes Path
1.1 jakarta-jmeter/xdocs/demos/URLRewritingExample.jmx
Index: URLRewritingExample.jmx
===================================================================
<?xml version="1.0"?>
<ThreadGroup name="URL Re-writing Example" numThreads="1" rampUp="0">
<controllers>
<LoopController type="org.apache.jmeter.control.LoopController" name="Loop Controller" iterations="-1">
<configElements>
</configElements>
<controllers>
<Controller type="org.apache.jmeter.control.ModifyController" name="Modification Controller">
<configElements>
<ConfigElement type="org.apache.jmeter.protocol.http.modifier.AnchorModifier">
</ConfigElement>
</configElements>
<controllers>
<HttpTestSample type="org.apache.jmeter.protocol.http.control.HttpTestSample" name="Login" getImages="false">
<defaultUrl>
<ConfigElement type="org.apache.jmeter.protocol.http.config.MultipartUrlConfig">
<property name="port">80</property>
<property name="PROTOCOL">http</property>
<property name="domain">my.server.com</property>
<property name="arguments"><Arguments>
<argument name="SESSION_ID"> .*</argument>
<argument name="username"> user</argument>
<argument name="password"> password</argument>
</Arguments>
</property>
<property name="path">/main.jsp</property>
<property name="method">POST</property>
</ConfigElement></defaultUrl>
<configElements>
</configElements>
<controllers>
</controllers>
</HttpTestSample>
<HttpTestSample type="org.apache.jmeter.protocol.http.control.HttpTestSample" name="Do Something interesting" getImages="false">
<defaultUrl>
<ConfigElement type="org.apache.jmeter.protocol.http.config.MultipartUrlConfig">
<property name="PROTOCOL">http</property>
<property name="domain">my.server.com</property>
<property name="arguments"><Arguments>
<argument name="SESSION_ID"> .*</argument>
</Arguments>
</property>
<property name="path">/something_interesting.jsp</property>
<property name="method">GET</property>
</ConfigElement></defaultUrl>
<configElements>
</configElements>
<controllers>
</controllers>
</HttpTestSample>
<HttpTestSample type="org.apache.jmeter.protocol.http.control.HttpTestSample" name="Another Interesting Request" getImages="false">
<defaultUrl>
<ConfigElement type="org.apache.jmeter.protocol.http.config.MultipartUrlConfig">
<property name="PROTOCOL">http</property>
<property name="domain">my.server.com</property>
<property name="arguments"><Arguments>
<argument name="SESSION_ID"> .*</argument>
</Arguments>
</property>
<property name="path">/another.jsp</property>
<property name="method">POST</property>
</ConfigElement></defaultUrl>
<configElements>
</configElements>
<controllers>
</controllers>
</HttpTestSample>
</controllers>
</Controller>
</controllers>
</LoopController>
</controllers>
<timers>
</timers>
<listeners>
</listeners>
</ThreadGroup>
1.1 jakarta-jmeter/xdocs/images/screenshots/url_rewrite_example_a.gif
<<Binary file>>
1.1 jakarta-jmeter/xdocs/images/screenshots/url_rewrite_example_b.gif
<<Binary file>>
1.9 +2 -2 jakarta-jmeter/xdocs/stylesheets/site.vsl
Index: site.vsl
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/stylesheets/site.vsl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- site.vsl 6 Mar 2002 01:25:02 -0000 1.8
+++ site.vsl 6 Mar 2002 03:52:03 -0000 1.9
@@ -169,8 +169,8 @@
#end
#macro (figure $figure)
- <table border="0" cellspacing="0" cellpadding="0"><tr><td><img src="$figure.getAttributeValue("image")"><br/>
- <font size="-1">#runloop($figure)</font></td></tr></table><br/>
+ <p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img src="$figure.getAttributeValue("image")"><br/>
+ <font size="-1">#runloop($figure)</font></td></tr></table></p>
#end
#macro (example $example)
1.3 +45 -0 jakarta-jmeter/xdocs/usermanual/best-practices.xml
Index: best-practices.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/best-practices.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- best-practices.xml 24 Feb 2002 18:14:29 -0000 1.2
+++ best-practices.xml 6 Mar 2002 03:52:03 -0000 1.3
@@ -11,12 +11,57 @@
</section>
<section name="11.1 Limit the Number of Threads" anchor="limit_threads">
+<p>Your hardware's capabilities will limit the number of threads you can effectively
+run with JMeter. It will also depend on how fast your server is (a faster server
+gives makes JMeter work harder since it returns request quicker). The more
+JMeter works, the less accurate its timing information will be. The more work
+JMeter does, the more each thread has to wait to get access to the CPU, the more
+inflated the timing information gets. If you need large-scale load testing, consider
+<a href="remote-test.html">running JMeter remotely</a> across multiple machines.</p>
</section>
<section name="11.2 Where to Put the Cookie Manager" anchor="put_cookie_manager">
+<p>See <a href="build-web-test-plan.html#adding_cookie_support">Building a Web Test</a>
+for information.</p>
</section>
<section name="11.3 Where to Put the Authorization Manager" anchor="put_auth_manager">
+<p>See <a href="build-adv-web-test-plan.html#header_manager">Building an Advanced
+Web Test</a> for information.</p>
+</section>
+
+<section name="11.4 Using the Proxy Server" anchor="proxy_server">
+<p>Refer to <complink name="HTTP Proxy Server"/> for details on setting up the proxy
+server. The most important thing to do is filter out all requests you aren't
+interested in. For instance, there's no point in recording image requests (JMeter can
+be instructed to download all images on a page - see <complink name="HTTP Request"/>).
+These will just clutter your test plan. Most likely, there is an extension all your files
+share, such as .jsp, .asp, .php, .html or the like. These you should "include" by
+entering ".*\.jsp" as an "Include Pattern". </p>
+<p>Alternatively, you can exclude images by entering ".*\.gif" as an "Exclude Pattern".
+Depending on your application, this may or may not be a better way to go. You may
+also have to exclude stylesheets, javascript files, and other included files. Test
+out your settings to verify you are recording what you want, and then erase and start
+fresh.</p>
+<p>Although JMeter will record directly to the ThreadGroup if no Logical Controller is
+present, it's recommended that you add a <complink name="Simple Controller"/> so that all
+samples are recorded there. This conveniently packages all your samples under one
+controller, which can be given a name that describes the test case.</p>
+<p>Now, go through the steps of a Test Case. If you have no pre-defined test cases, use
+JMeter to record your actions to define some test cases. Once you have finished a
+definite series of steps, save the entire test case in an appropriately named file. Then, wipe
+clean and start a new test case. By doing this, you can quickly record a large number of
+test case "rough drafts".</p>
+<p>The test cases will likely need to be further modified. For instance, there may
+have been some dynamic data in one or more of the samples. If so, these samples will
+ need to be put under a <complink name="Modification Manager"/>. Currently, there is
+ no convenient way to do this other than saving the samples temporarily, deleting them, adding
+the Modification Manager, and then reloading the saved samples into the Modification Manager.
+This will be fixed in 1.8.</p>
+<p>You may also want to put any login pages within a <complink name="Once Only Controller"/>,
+so that the login action is done only once per test. Alternatively, you might put all
+the samples but the login page within a <complink name="Loop Controller"/>, to execute
+X number of times before repeating the login request.</p>
</section>
</body>
1.3 +1 -0 jakarta-jmeter/xdocs/usermanual/boss.xml
Index: boss.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/boss.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- boss.xml 24 Feb 2002 18:14:44 -0000 1.2
+++ boss.xml 6 Mar 2002 03:52:03 -0000 1.3
@@ -8,6 +8,7 @@
<body>
<section name="12. Help! My boss wants me to load test our web app!" anchor="boss">
+<p>To be written.</p>
</section>
</body>
1.3 +36 -10 jakarta-jmeter/xdocs/usermanual/build-adv-web-test-plan.xml
Index: build-adv-web-test-plan.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/build-adv-web-test-plan.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- build-adv-web-test-plan.xml 24 Feb 2002 17:57:53 -0000 1.2
+++ build-adv-web-test-plan.xml 6 Mar 2002 03:52:03 -0000 1.3
@@ -8,25 +8,51 @@
<body>
<section name="6. Building an Advanced Web Test Plan" anchor="building">
-<p>In this section, you will learn how to create advanced
-<a href="build-test-plan.html">Test Plans</a> to test a Web site.</p>
+<p>In this section, you will learn how to create advanced
+<a href="build-test-plan.html">Test Plans</a> to test a Web site.</p>
<p>
<ul>
-<li><a href="#multi_user_logins">6.1 Creating Multiple User Logins</a></li>
-<li><a href="#session_cookies">6.2 Handling User Sessions With Cookies</a></li>
-<li><a href="#session_url_rewriting">6.3 Handling User Sessions With URL Rewriting</a></li>
+<li><a href="#session_url_rewriting">6.1 Handling User Sessions With URL Rewriting</a></li>
</ul>
</p>
-<p>For an example of a basic Test Plan, see
+<p>For an example of a basic Test Plan, see
<a href="build-web-test-plan.html">Building a Web Test Plan</a>.</p></section>
-<section name="6.1 Creating Multiple User Logins" anchor="multi_user_logins">
-</section>
+<section name="6.1 Handling User Sessions With URL Rewriting" anchor="session_url_rewriting">
+<p>If your web application uses URL rewriting rather than cookies to save session information,
+then you'll need to do a bit of extra work to test your site.</p>
+<p>To respond correctly to URL rewriting, JMeter needs to parse the HTML
+received from the server and retrieve the unique session ID. To do this, put
+all your requests inside a <complink name="Modification Manager"/>, with an <complink
+name="HTML Link Parser"/> attached. Then, include the session ID as an additional parameter
+with each <complink name="HTTP Request"/>, with ".*" as the value.</p>
-<section name="6.2 Handling User Sessions With Cookies" anchor="session_cookies">
+<example title="URL Rewriting Example">
+<p>Download <a href="../demos/URLRewritingExample.jmx">this example</a>. In Figure 1 is shown a test plan using URL rewriting. Note that all HTTP Requests are
+contained within the <complink name="Modification Manager"/>. The <complink name="Modification Manager"/>
+also has an <complink name="HTML Link Parser"/> attached to it.</p>
+<note>It would be possible to use other <a href="component_reference.html#logic_controllers">Logic
+Controllers</a> within the
+<complink name="Modification Manager"/> without affecting the Modification Manager.</note>
+<figure image="../images/screenshots/url_rewrite_example_a.gif">Figure 1 - Test Tree</figure>
+<p>In Figure 2, we see the "Send Parameters with Request" section of one of the
+<complink name="HTTP Request"/> objects. It shows, in addition to the login
+information, the SESSION_ID parameter, with a value of ".*", which is a regular expression
+that will match any string. Your application will have its own unique name for
+this parameter, which you will have to put in place of "SESSION_ID".</p>
+<figure image="../images/screenshots/url_rewrite_example_b.gif">Figure 2 - Request parameters</figure>
+</example>
</section>
-<section name="6.3 Handling User Sessions With URL Rewriting" anchor="session_url_rewriting">
+<section name="6.2 Using a Header Manager" anchor="header_manager">
+<p>The <complink name="HTTP Header Manager"/> lets you customize what information
+JMeter sends in the HTTP request header. This header includes properties like "User-Agent",
+"Pragma", "Referer", etc.</p>
+<p>The <complink name="HTTP Header Manager"/>, like the <complink name="HTTP Cookie Manager"/>,
+should probably be added at the Thread Group level, unless for some reason you wish to
+specify different headers for the different <complink name="HTTP Request"/> objects in
+your test.</p>
+
</section>
</body>
1.2 +1 -0 jakarta-jmeter/xdocs/usermanual/build-db-test-plan.xml
Index: build-db-test-plan.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/build-db-test-plan.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build-db-test-plan.xml 28 Oct 2001 13:22:50 -0000 1.1
+++ build-db-test-plan.xml 6 Mar 2002 03:52:03 -0000 1.2
@@ -8,6 +8,7 @@
<body>
<section name="7. Building a Database Test Plan">
+<p>To be written.</p>
</section>
</body>
1.2 +1 -0 jakarta-jmeter/xdocs/usermanual/build-ftp-test-plan.xml
Index: build-ftp-test-plan.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/build-ftp-test-plan.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build-ftp-test-plan.xml 28 Oct 2001 13:22:50 -0000 1.1
+++ build-ftp-test-plan.xml 6 Mar 2002 03:52:03 -0000 1.2
@@ -8,6 +8,7 @@
<body>
<section name="8. Building a FTP Test Plan">
+<p>To be written.</p>
</section>
</body>
1.2 +1 -0 jakarta-jmeter/xdocs/usermanual/build-jndi-test-plan.xml
Index: build-jndi-test-plan.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/build-jndi-test-plan.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build-jndi-test-plan.xml 24 Feb 2002 18:22:04 -0000 1.1
+++ build-jndi-test-plan.xml 6 Mar 2002 03:52:03 -0000 1.2
@@ -8,6 +8,7 @@
<body>
<section name="8. Building a JNDI Test Plan" anchor="building">
+<p>To be written.</p>
</section>
</body>
1.4 +1 -1 jakarta-jmeter/xdocs/usermanual/build-test-plan.xml
Index: build-test-plan.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/build-test-plan.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- build-test-plan.xml 24 Feb 2002 18:40:30 -0000 1.3
+++ build-test-plan.xml 6 Mar 2002 03:52:03 -0000 1.4
@@ -14,7 +14,7 @@
</p>
<subsection name="3.1 Adding and Removing Elements" anchor="add_remove">
-<p>Adding elements to a test plan can be done by right-clicking on an element in the
+<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 "open" option. </p>
1.11 +40 -0 jakarta-jmeter/xdocs/usermanual/component_reference.xml
Index: component_reference.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/component_reference.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- component_reference.xml 6 Mar 2002 01:25:02 -0000 1.10
+++ component_reference.xml 6 Mar 2002 03:52:03 -0000 1.11
@@ -142,6 +142,27 @@
</links>
</component>
+
+<component index="13.1.4" name="JNDI Request" screenshot="">
+
+<properties>
+ <property name="java.naming.factory.initial" required=""></property>
+ <property name="java.naming.factory.object" required=""></property>
+ <property name="java.naming.factory.state" required=""></property>
+ <property name="java.naming.factory.url.pkgs" required=""></property>
+ <property name="java.naming.provider.url" required=""></property>
+ <property name="java.naming.dns.url" required=""></property>
+ <property name="java.naming.authoritative" required=""></property>
+ <property name="java.naming.batchsize" required=""></property>
+ <property name="java.naming.referral" required=""></property>
+ <property name="java.naming.security.protocol" required=""></property>
+ <property name="java.naming.security.authentication" required=""></property>
+ <property name="java.naming.security.principal" required=""></property>
+ <property name="java.naming.security.credentials" required=""></property>
+ <property name="java.naming.language" required=""></property>
+ <property name="java.naming.applet" required=""></property>
+</properties>
+</component>
</section>
<section name="13.2 Logic Controllers" anchor="logic_controllers">
@@ -670,6 +691,25 @@
<figure image="../images/screenshots/http-config/header-manager-example1b.gif">Figure 10 - Header Manager Control Panel</figure>
</example>
+</component>
+
+<component index="13.4.11" name="JNDI Lookup Configuration" screenshot="">
+<properties>
+ <property name="Name">Descriptive name for this element that is shown in the tree.</property>
+ <property name="Remote Interface"></property>
+</properties>
+</component>
+
+<component index="13.4.12" name="JNDI Remote Method Configuration" screenshot="">
+<properties>
+ <property name="Name">Descriptive name for this element that is shown in the tree.</property>
+ <property name="Home Method Name"></property>
+ <property name="Home Method Parameters"></property>
+ <property name="Remote Interfaces"></property>
+ <property name="Remote Method Name"></property>
+ <property name="Remote Method Parameters"></property>
+ <property name="Reflect Button"></property>
+</properties>
</component>
</section>
1.8 +26 -2 jakarta-jmeter/xdocs/usermanual/get-started.xml
Index: get-started.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/get-started.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- get-started.xml 23 Feb 2002 03:47:56 -0000 1.7
+++ get-started.xml 6 Mar 2002 03:52:03 -0000 1.8
@@ -52,7 +52,7 @@
<subsection name="2.2.2 SAX XML Parser" anchor="opt_sax">
<p>JMeter comes with Apache's <a href="http://xml.apache.org/">Xerces XML parser</a>. You have the option of telling JMeter
to use a different XML parser. To do so, include the classes for the third-party parser in JMeter's <a href="#classpath">classpath</a>,
-and update the <a href="configuring_jmeter.html">jmeter.properties</a> file with the full classname of the parser
+and update the <a href="#configuring_jmeter">jmeter.properties</a> file with the full classname of the parser
implementation.</p>
</subsection>
@@ -64,7 +64,7 @@
<subsection name="2.2.4 SSL Encryption" anchor="opt_ssl">
<p>To test a web server using SSL encryption (HTTPS), JMeter requires that an
implementation of SSL be provided (such as Sun's <a href="http://java.sun.com/products/jsse/index.html">Java Secure Sockets Extension -- JSSE</a>).
-Include the necessary encryption packages in JMeter's <a href="#classpath">classpath</a>. Also, update <a href="configuring_jmeter.html">jmeter.properties</a>
+Include the necessary encryption packages in JMeter's <a href="#classpath">classpath</a>. Also, update <a href="#configuring_jmeter">jmeter.properties</a>
by registering the SSL Provider.</p>
<p>Note: if you are running JDK1.4, then you do not have to download JSSE because Sun integrated it into JDK1.4 as a standard library.</p>
</subsection>
@@ -128,6 +128,30 @@
-p [proxy server port]</p>
<p><b>Example</b>: nongui -o my_test.jmx -h my.proxy.server -p 8000</p>
</subsection>
+</section>
+
+<section name="2.5 Configuring JMeter" anchor="configuring_jmeter">
+<p>If you wish to modify the properties with which JMeter runs you need to
+ either modify the jmeter.properties inside of the /bin directory or create
+ your own copy of the jmeter.properties and specify it in the command line
+ (jmeter [properties file]).
+ </p>
+ <properties>
+ <property name="search_paths">If you have developed new extensions to JMeter,
+ you can tell JMeter where to find your classes by adding the name of the
+ jar, or the directory where your classes live.</property>
+ <property name="user.dir">The directory JMeter will first go to for saving and
+ loading test scripts.</property>
+ <property name="remote_hosts">Comma-delimited list of remote JMeter hosts.
+ If you are running JMeter in a distributed environment, list the machines where
+ you have JMeter remote servers running. This will allow you to control those
+ servers from this machine's GUI</property>
+ <property name="not_in_menu">A list of components you do not want to see in
+ JMeter's menus. As JMeter has more and more components added, you may wish to
+ customize your JMeter to show only those components you are interested in.
+ You may list their classname or their class label (the string that appears
+ in JMeter's UI) here, and they will no longer appear in the menu's.</property>
+ </properties>
</section>
</body>
1.17 +3 -3 jakarta-jmeter/xdocs/usermanual/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/index.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- index.xml 6 Mar 2002 01:25:02 -0000 1.16
+++ index.xml 6 Mar 2002 03:52:03 -0000 1.17
@@ -39,6 +39,7 @@
<li><a href="get-started.html#proxy_server">2.4.2 Using a Proxy Server</a></li>
<li><a href="get-started.html#non_gui">2.4.3 Non-GUI Mode</a></li>
</ul>
+ <li><a href="get-started.html#configuring_jmeter">2.5 Configuring JMeter</a></li>
</ul>
<li><a href="build-test-plan.html">3. Building a Test Plan</a></li>
<ul>
@@ -72,9 +73,8 @@
</ul>
<li><a href="build-adv-web-test-plan.html">6. Building an Advanced Web Test Plan</a></li>
<ul>
- <li><a href="build-adv-web-test-plan.html#multi_user_logins">6.1 Creating Multiple User Logins</a></li>
- <li><a href="build-adv-web-test-plan.html#session_cookies">6.2 Handling User Sessions With Cookies</a></li>
- <li><a href="build-adv-web-test-plan.html#session_url_rewriting">6.3 Handling User Sessions With URL Rewriting</a></li>
+ <li><a href="build-adv-web-test-plan.html#session_url_rewriting">6.1 Handling User Sessions With URL Rewriting</a></li>
+ <li><a href="build-adv-web-test-plan.html#header_manager">6.2 Using a Header Manager</a></li>
</ul>
<li><a href="build-db-test-plan.html">7. Building a Database Test Plan</a></li>
<li><a href="build-ftp-test-plan.html">8. Building a FTP Test Plan</a></li>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>