mirror of https://github.com/apache/jmeter.git
208 lines
10 KiB
XML
208 lines
10 KiB
XML
<?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.
|
|
-->
|
|
<!DOCTYPE document
|
|
[
|
|
<!ENTITY sect-num '22'>
|
|
]>
|
|
<document prev="regular_expressions.html" next="glossary.html" id="$Id: $">
|
|
|
|
<properties>
|
|
<title>User's Manual: Hints and Tips</title>
|
|
</properties>
|
|
|
|
<body>
|
|
|
|
<section name="§-num;. Hints and Tips" anchor="hints">
|
|
<p>
|
|
This section is a collection of various hints and tips that have been suggested by various questions on the JMeter User list.
|
|
If you don't find what you are looking for here, please check the <a href="http://wiki.apache.org/jmeter">JMeter Wiki</a>.
|
|
Also, try search the JMeter User list; someone may well have already provided a solution.
|
|
</p>
|
|
<subsection name="§-num;.1 Passing variables between threads" anchor="variable_and_threads">
|
|
<p>
|
|
JMeter variables have thread scope. This is deliberate, so that threads can act independently.
|
|
However sometimes there is a need to pass variables between different threads, in the same or different Thread Groups.
|
|
</p>
|
|
<p>
|
|
One way to do this is to use a property instead.
|
|
Properties are shared between all JMeter threads, so if one thread <a href="functions.html#__setProperty">sets a property</a>,
|
|
another thread can <a href="functions.html#__P">read</a> the updated value.
|
|
</p>
|
|
<p>
|
|
If there is a lot of information that needs to be passed between threads, then consider using a file.
|
|
For example you could use the <a href="component_reference.html#Save_Responses_to_a_file">Save Responses to a file</a>
|
|
listener or perhaps a BeanShell PostProcessor in one thread, and read the file using the HTTP Sampler "<code>file:</code>" protocol,
|
|
and extract the information using a PostProcessor or BeanShell element.
|
|
</p>
|
|
<p>
|
|
If you can derive the data before starting the test, then it may well be better to store it in a file,
|
|
read it using CSV Dataset.
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name="§-num;.2 Enabling Debug logging" anchor="debug_logging">
|
|
<p>
|
|
Most test elements include debug logging. If running a test plan from the GUI,
|
|
select the test element and use the Help Menu to enable or disable logging.
|
|
The Help Menu also has an option to display the GUI and test element class names.
|
|
You can use these to determine the correct property setting to change the logging level.
|
|
</p>
|
|
|
|
<p>
|
|
It is sometimes very useful to see Log messages to debug dynamic scripting languages like BeanShell or
|
|
groovy used in JMeter.
|
|
Since version 2.6, you can view log messages directly in JMeter GUI, to do so:</p>
|
|
<ul>
|
|
<li>use menu <code>Options</code> > <code>Log Viewer</code>, a log console will appear at the bottom of the interface</li>
|
|
<li>Or click on the Warning icon in the upper right corner of GUI</li>
|
|
</ul>
|
|
By default this log console is disabled, you can enable it by changing in <code>jmeter.properties</code>:
|
|
<source>jmeter.loggerpanel.display=true</source>
|
|
|
|
To avoid using too much memory, this components limits the number of characters used by this panel:
|
|
|
|
<source>jmeter.loggerpanel.maxlength=80000</source>
|
|
</subsection>
|
|
|
|
<subsection name="§-num;.3 Searching" anchor="searching">
|
|
<p>
|
|
It is sometimes hard to find in a Test Plan tree and elements using a variable or containing a certain URL or parameter.
|
|
A new feature is now available since 2.6, you can access it in Menu Search.
|
|
It provides search with following options:
|
|
</p>
|
|
<dl>
|
|
<dt><code>Case sensitive</code></dt><dd>Makes search case sensitive</dd>
|
|
<dt><code>Regular exp.</code></dt><dd>Is text to search a regexp, if so Regexp will be searched in Tree of components, example "<code>\btest\b</code>"
|
|
will match any component that contains test in searchable elements of the component</dd>
|
|
</dl>
|
|
|
|
<figure width="663" height="300" image="searching/raw-search.png">Figure 1 - Search raw text in TreeView</figure>
|
|
<figure width="667" height="319" image="searching/raw-search-result.png">Figure 2 - Result in TreeView</figure>
|
|
<figure width="642" height="307" image="searching/regexp-search.png">Figure 3 - Search Regexp in TreeView (in this example we search whole word)</figure>
|
|
<figure width="596" height="328" image="searching/regexp-search-result.png">Figure 4 - Result in TreeView</figure>
|
|
|
|
</subsection>
|
|
|
|
<subsection name="§-num;.4 Toolbar icons size" anchor="toolbar">
|
|
<description>
|
|
<p>
|
|
You can change the size of icons in the toolbar using the property <source>jmeter.toolbar.icons.size</source> with these
|
|
values: <code>22x22</code> (default size), <code>32x32</code> or <code>48x48</code>.
|
|
</p>
|
|
</description>
|
|
<figure width="296" height="95" image="icons-22x22.jpg">Icons with the size <code>22x22</code>.</figure>
|
|
<figure width="300" height="106" image="icons-32x32.jpg">Icons with the size <code>32x32</code>.</figure>
|
|
<figure width="365" height="120" image="icons-48x48.jpg">Icons with the size <code>48x48</code>.</figure>
|
|
</subsection>
|
|
|
|
<subsection name="§-num;.5 Autosave process configuration" anchor="autosave">
|
|
<description>
|
|
<p>Since JMeter 2.14, JMeter automatically saves up to ten backups of every saved jmx files. When enabled, just before the jmx file is saved,
|
|
it will be backed up to the <code>${JMETER_HOME}/backups</code> subfolder. Backup files are named after the saved jmx file and assigned a
|
|
version number that is automatically incremented, ex: <code>test-plan-000001.jmx</code>, <code>test-plan-000002.jmx</code>, <code>test-plan-000003.jmx</code>, etc.
|
|
To control auto-backup, add the following properties to <code>user.properties</code>.</p>
|
|
<dl>
|
|
<dt><code>backup_on_save</code></dt>
|
|
<dd>
|
|
To enable/disable auto-backup, set the following property to <code>true</code>/<code>false</code> (default is <code>true</code>):
|
|
<source>jmeter.gui.action.save.backup_on_save=false</source>
|
|
</dd>
|
|
<dt><code>backup_directory</code></dt>
|
|
<dd>
|
|
The backup directory can also be set to a different location. Setting the <code>jmeter.gui.action.save.backup_directory</code> property
|
|
to the path of the desired directory
|
|
will cause backup files to be stored inside instead of the <code>${JMETER_HOME}/backups</code> folder. If the specified directory does not exist
|
|
it will be created. Leaving this property unset will cause the <code>${JMETER_HOME}/backups</code> folder to be used.
|
|
<source>jmeter.gui.action.save.backup_directory=/path/to/backups/dir</source>
|
|
</dd>
|
|
<dt><code>keep_backup_max_hours</code></dt>
|
|
<dd>
|
|
You can also configure the maximum time (in hours) that backup files should be preserved since the most recent save time.
|
|
By default a zero expiration time is set which instructs JMeter to preserve backup files for ever.
|
|
Use the following property to control max preservation time:
|
|
<source>jmeter.gui.action.save.keep_backup_max_hours=0</source>
|
|
</dd>
|
|
<dt><code>keep_backup_max_count</code></dt>
|
|
<dd>
|
|
You can set the maximum number of backup files that should be preserved. By default <code>10</code> backups will be kept.
|
|
Setting this to zero will cause the backups to never being deleted (unless <code>keep_backup_max_hours</code> is set to a non null value)
|
|
Maximum backup files selection is processed <em>after</em> time expiration selection, so even if you set one year as the expiry time,
|
|
only the <code>keep_backup_max_count</code> most recent backups files will be kept.
|
|
<source>jmeter.gui.action.save.keep_backup_max_count=10</source>
|
|
</dd>
|
|
</dl>
|
|
</description>
|
|
</subsection>
|
|
|
|
<subsection name="§-num;.5 Adding Elements with Hotkeys" anchor="component_hotkeys">
|
|
<p>
|
|
When you do intense scripting with JMeter, there is a way to add elements to test plan quickly
|
|
with keyboard shortcuts. Default bindings are:
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>0</keysym></keycombo>
|
|
</dt>
|
|
<dd>Thread Group</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>1</keysym></keycombo>
|
|
</dt>
|
|
<dd>HTTP Request</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>2</keysym></keycombo>
|
|
</dt>
|
|
<dd>Regular Expression Extractor</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>3</keysym></keycombo>
|
|
</dt>
|
|
<dd>Response Assertion</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>4</keysym></keycombo>
|
|
</dt>
|
|
<dd>Constant Timer</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>5</keysym></keycombo>
|
|
</dt>
|
|
<dd>Test Action</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>6</keysym></keycombo>
|
|
</dt>
|
|
<dd>JSR223 PostProcessor</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>7</keysym></keycombo>
|
|
</dt>
|
|
<dd>JSR223 PreProcessor</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>8</keysym></keycombo>
|
|
</dt>
|
|
<dd>Debug Sampler</dd>
|
|
<dt>
|
|
<keycombo><keysym>Ctrl</keysym><keysym>9</keysym></keycombo>
|
|
</dt>
|
|
<dd>View Results Tree</dd>
|
|
</dl>
|
|
<p>
|
|
To change these binding, please find "<code>gui.quick_*</code>" properties within <code>jmeter.properties</code> file as example,
|
|
it is recommended to put overrides for them into <code>user.properties</code> file.
|
|
</p>
|
|
</subsection>
|
|
</section>
|
|
|
|
</body>
|
|
</document>
|