⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 best-practices.html

📁 测试工具jmeter可用来进行性能测试
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
   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.
-->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>JMeter - User's Manual: Best Practices</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#525D76">
<table border="0" cellspacing="0">
<tr>
<td colspan="2">
<a href="http://jakarta.apache.org"><img width="505" height="48" src="../../docs/images/jakarta-logo.gif" align="left" border="0"></a>
</td>
</tr>
</table>
<table border="0" cellspacing="4">
<tr><td>
<hr noshade size="1">
</td></tr>
<tr>
<td align="left" valign="top">
<table>
<tr>
<td bgcolor="#525D76">
<div align="right"><a href="index.html"><font size=-1 color="#ffffff" face="arial,helvetica,sanserif">Index</font></a></div>
</td>
<td bgcolor="#525D76">
<div align="right"><a href="boss.html"><font size=-1 color="#ffffff" face="arial,helvetica,sanserif">Next</font></a></div>
</td>
<td bgcolor="#525D76">
<div align="right"><a href="remote-test.html"><font size=-1 color="#ffffff" face="arial,helvetica,sanserif">Prev</font></a></div>
</td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="best_practices"><strong>16. Best Practices</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="limit_threads"><strong>16.1 Limit the Number of Threads</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<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
running multiple non-GUI JMeter instances on multiple machines.
</p>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="put_cookie_manager"><strong>16.2 Where to Put the Cookie Manager</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
See 
<a href="build-web-test-plan.html#adding_cookie_support">
Building a Web Test
</a>

for information.
</p>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="put_auth_manager"><strong>16.3 Where to Put the Authorization Manager</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
See 
<a href="build-adv-web-test-plan.html#header_manager">
Building an Advanced
Web Test
</a>
 for information.
</p>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="proxy_server"><strong>16.4 Using the Proxy Server</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
Refer to 
<a href="../usermanual/component_reference.html#HTTP_Proxy_Server">HTTP Proxy Server</a>
 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 
<a href="../usermanual/component_reference.html#HTTP_Request">HTTP Request</a>
).
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>
The Proxy Server expects to find a ThreadGroup element with a Recording Controller
under it where it will record HTTP Requests to.  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 your 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>
One of the most useful features of the Proxy Server is that you can abstract out
certain common elements from the recorded samples.  By defining some

<a href="functions.html">
user-defined variables
</a>
 at the Test Plan level or in

<a href="../usermanual/component_reference.html#User_Defined_Variables">User Defined Variables</a>
 elements, you can have JMeter automatically
replace values in you recorded samples.  For instance, if you are testing an app on
server "xxx.example.com", then you can define a variable called "server" with the value of
"xxx.example.com", and anyplace that value is found in your recorded samples will be replaced
with "${server}".


<p><table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
<tr><td>Please note that matching is case-sensitive.
</td></tr>
</table></p>



</p>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="user_variables"><strong>16.5 User variables</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>

Some test plans need to use different values for different users/threads. 
For example, you might want to test a sequence that requires a unique login for each user.
This is easy to achieve with the facilities provided by JMeter.

</p>
<p>
For example:
</p>
<ul>


<li>
Create a text file containing the user names and passwords, separated by commas.
Put this in the same directory as your test plan.

</li>


<li>

Add a CSV DataSet configuration element to the test plan.
Name the variables USER and PASS.

</li>


<li>

Replace the login name with ${USER} and the password with ${PASS} on the appropriate
samplers

</li>


</ul>
<p>
The CSV Data Set element will read a new line for each thread. 

</p>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="lean_mean"><strong>16.6 Reducing resource requirements</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>

Some suggestions on reducing resource usage.

</p>
<ul>


<li>
Use non-GUI mode: jmeter -n -t test.jmx -l test.jtl
</li>


<li>
Use as few Listeners as possible; if using the -l flag as above they can all be deleted or disabled.
</li>


<li>
Rather than using lots of similar samplers, 
use the same sampler in a loop, and use variables (CSV Data Set) to vary the sample. 
Or perhaps use the Access Log Sampler.
[The Include Controller does not help here, as it adds all the test elements in the file to the test plan.]

</li>


<li>
Don't use functional mode
</li>


<li>
Use CSV output rather than XML
</li>


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -