Jmeter中文手册完全版.docx
- 文档编号:2991741
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:38
- 大小:323.51KB
Jmeter中文手册完全版.docx
《Jmeter中文手册完全版.docx》由会员分享,可在线阅读,更多相关《Jmeter中文手册完全版.docx(38页珍藏版)》请在冰点文库上搜索。
Jmeter中文手册完全版
安装JDK:
JAVA的环境变量设置
使用鼠标右击“我的电脑”—〉属性—〉高级—〉环境变量
系统变量-〉新建—〉变量名:
JAVA_HOME变量值:
d:
\jdk
系统变量-〉编辑—〉变量名:
Path在变量值的最前面加上:
%JAVA_HOME%\bin;
系统变量—>新建—〉变量名:
CLASSPATH变量值:
。
;
安装Tomcat
CATALINA_HOME=d:
\tomcat
UserManual
用户手册
1介绍
ApacheJMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS结构的软件。
同时也可以用来测试静态和动态资源的性能,例如:
静态文件,JavaServlets,CGIScripts,JavaObject,数据库和FTP服务器等等。
JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。
通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值.为了更高的适应性,JMeter允许你使用常规表达式来创建这些assertions。
2开始
2.1安装
下载安装最新的版本,将会包含所有你需要建立和运行Web,FTP,JDBC和JNDI测试的文件.
如果你想进行JDBC测试,你需要使用合适的JDBCdriver。
JMeter中不包含JDBCdrivers。
其他可能需要下载的软件:
●BeanShell
●JavaActivationFramework–neededforJavaMail
●JavaMail–neededformailvisualiserandSOAPtest
●JMS–forJMSsamples
●GeneralJavaKit
接下来一步,就是浏览"建立测试计划”一章来熟悉JMeter的基本操作,例如:
添加和删除元素。
最后,浏览适当的章节来学习如何建立不同种类的测试计划。
例如,如果你对Web应用程序的测试比较感兴趣,就浏览"建立一个Web测试计划"章节。
其他种类的测试计划建立的章节包括:
JDBC,FTP和JNDI。
一旦你熟悉了建立和运行JMeter测试计划,就可以开始熟悉各种配置参数,例如:
timers,listeners,assertions和其他的参数,来帮助你更好地控制你地测试计划。
2。
2系统要求
JMeter1.8以上的版本需要JDK1.4以上的版本支持运行。
JMeter可以运行在如下操作系统上:
Unix,Windows和OpenVMS。
2。
3可选项目
如果你打算进行JMeter开发或者使用Sun的Java标准扩展包,你需要如下所列的可选包:
2。
3。
1JavaCompiler
需要1。
4以上的JDK版本
2。
3.2SAXXMLParser
JMeter默认使用Apache的XercesXMLparser。
如果你想使用一个不同的XMLparser,将第三方的parser包放入JMeter的classpath中,然后使用设置的parser包的全名更新文件jmeter。
properties
2.3.3EmailSupport
JMeter拥有有限的邮件功能来发送测试结果到指定邮箱中。
应用邮箱功能,需要将Sun的JavaMail包放入JMeter的classpath中并激活.
2.3。
4SSLEncryption
为使用HTTPS测试web服务器,JMeter需要设立SSL机制.将所需要的SSL类包放入JMeter的classpath中,更新jmeter。
properties来注册SSLProvider.
可以使用SSLManager用来管理这些证书。
注意:
在JDK1.4以上版本,SSL已经作为标准库加入。
2。
2。
5JDBCDriver
你需要将你的数据库供应商提供的JDBCdrivers添加到classpath中来进行JDBC测试。
2。
2.6ApacheSOAP
ApacheSOAP测试需要mail。
jar和activation.jar.只需要将下载的两个jar文件复制到JMeter下的lib目录中,JMeter会自动的识别和使用它们.
2.3运行
运行JMeter,使用jmeter.bat(windows)或jmeter(UNIX).
2。
3。
1JMeter的classpath
JMeter自动在/lib和/lib/ext目录中的jar中的类.如果你想添加其他JAR文件到JMeter的classpath中,你必须复制他们到lib目录中.如果你开发了一个JMeter特定组件,生成jar包后复制到lib目录下的ext目录中。
而且,你也可以将有效的jar文件安装到$JAVA_HOME/jre/lib/ext目录中.
值得注意的是设置CLASSPATH环境变量没有任何作用.这是因为JMeter使用"java–jar”开始,java命令自动忽略CLASSPATH值,同时-jar选项的使用将屏蔽掉—classpath和—cp选项。
2.3。
2使用代理服务器
如果你在防火墙或者代理服务器后进行测试,你需要给JMeter提供防火墙和代理服务器的hostname和port号。
在命令行运行jmeter。
bat或jmeter命令并使用如下参数:
—H代理服务器的hostname或者IP地址
-P代理服务器的port号
-u代理服务器验证使用的用户名
-a代理服务器验证使用的用户密码
示例:
jmeter–Hyahoo–P8080–utest–apassword
2.3.3非GUI模式
对于那些非交互的测试,你可以使用非GUI的模式运行JMeter.使用如下命令:
—n指定的JMeter运行在non—GUI模式下
—t包含测试计划的JMX文件的名称
-l用于记录简单结果的JTL文件名称。
—r运行所有的在jmeter。
properties中指定的远程主机。
(或在命令行中提供的覆盖属性提供的远程主机名。
也可以同时提供防火墙或者代理服务器的信息
-H服务器名或IP地址
—P端口号
示例:
jmeter–n–tmy。
jmx–llog。
jtl–Hyahoo–P8800
2。
3.4服务器模式
为了对分布式测试,可以运行在服务器模式下,然后通过GUI来控制每个服务器。
运行jmeter-server/jmeter-server。
bat,附加下列可选项:
—H代理服务器的hostname或IP地址
—P端口号
示例:
jmeter—server–Hyahoo–P8000
2.3。
5通过命令行来重载Properties
Javasystemproperties,JMeterproperties和loggingproperties能够直接通过命令行来直接重载而不用修改jmeter.properties文件。
使用以下参数项:
—D[propname]=[value]定义一个javasystemproperty值
—J[propname]=[value]重载一个JMeterproperty
—L[category]=[priority]重载一个loggingsetting,设置一个指定的类别名给指定的优先级别
-L标志位可以不指定category,将其设为root级别
示例:
jmeter–Duser。
dir=/home/mstover/jmeter_stuff\-Jremote_hosts=127。
0。
0.1
–Ljmeter.engine=DEBUG
jmeter–LDEBUG
注意:
命令行输入的properties在启动时先处理,但是晚于loggingsystem的建立.所以尝试使用—J标志去更新log_level或者log_file的properties将没有任何效果。
2。
3。
6Logging和error信息
如果JMeter检查到一个错误,一个信息就被写道log文件中。
Log文件的名字是在jmeter。
properties文件中定义的。
默认值位jmeter。
log,在JMeter的开始目录中可以看到,例如bin目录中。
除了记录错误信息,jmeter。
log文件中同时记录了一些测试运行的信息。
例如:
10/17/200312:
19:
20PMINFO—jmeter.JMeter:
Version1。
9。
20031002
10/17/200312:
19:
45PMINFO—jmeter。
gui。
action.Load:
Loadingfile:
c:
\mytestfiles\BSH。
jmx
10/17/200312:
19:
52PMINFO-jmeter.engine.StandardJMeterEngine:
Runningthetest!
10/17/200312:
19:
52PMINFO—jmeter。
engine。
StandardJMeterEngine:
Starting1threadsforgroupBSH。
Rampup=1.
10/17/200312:
19:
52PMINFO-jmeter。
engine.StandardJMeterEngine:
Continueonerror
10/17/200312:
19:
52PMINFO-jmeter。
threads。
JMeterThread:
ThreadBSH1-1started
10/17/200312:
19:
52PMINFO-jmeter.threads。
JMeterThread:
ThreadBSH1—1isdone
10/17/200312:
19:
52PMINFO-jmeter。
engine.StandardJMeterEngine:
Testhasended
Log文件有助于定位错误出现的原因,因为它并未打断测试来显示一个error窗口.
2。
4配置JMeter
如果你想修改JMeter运行使用的properties,你可以通过两种方式:
修改bin目录中的文件jmeter.properties或者创建你自己的properties文件使用命令行来指定该文件.
Parameters
Attribute
Description
Required
ssl。
provider
你可以指定一个类支持SSL。
如果你使用sun的JSSE,那么是:
com。
sun。
net。
ssl。
internal。
ssl。
Provider.
JMeter默认的https支持在JDK1。
4中包含.
No
xml.parser
你可以指定一个你自己的XMLparser。
默认值为:
org。
apache。
xerces。
parsers。
SAXParser
No
user。
dir
JMeter用于保存和装载测试用例的目录.
No
remote_hosts
使用逗号分割的远程JMeter主机。
如果你运行在分布式环境下,列出你拥有的运行的JMeter远程主机.允许你通过GUI去控制这些机器。
No
not_in_menu
一个组件的列表,都是你不想在JMeter的菜单中看到的.由于JMeter添加了越来越多的组建,你可能希望自己定制你的JMeter来仅仅显示那些你感兴趣的组建.你可以列出他们类名或者类的标签(在JMeter界面中显示的字符串)在这里,他们将不会被显示。
No
3建立测试计划
一个测试计划描述了一系列JMeter在运行中要执行的步骤。
一个完整的测试计划包含一个或多个ThreadGroups,logiccontrollers,samplegeneratingcontrollers,listeners,timers,assertions和configurationelements。
3。
1添加删除Elements
添加elements到测试计划,可以通过在tree中element上点击右键,然后从add列表中选择一个新的element。
同样,elements也可以通过open选项从一个文件中载入.
删除一个element,确定该element被选定,右击选择删除选项。
3。
2载入和存储elements
载入文件中的elements,在已有的tree中点击右键,然后选择open选项。
选择elements存储的文件,JMeter将载入文件中的所有elements到tree中。
存储tree的elements,选择一个element然后右击,选择save选项。
JMeter会存储选定的element,以及所有的子elements.这样你就可以存储测试树的一段,单独的element或者整个测试计划。
3。
3配置tree的elements
任何一个一个测试树中的element都可以在JMeter的右边框架显示.这样允许你来配置该测试element的属性。
能够配置什么属性取决于你选定的element的类型。
3。
4运行测试计划
在run菜单中选择开始来运行测试计划.停止测试计划,从菜单中选择停止.JMeter不会自动的在运行测试计划时有任何表现。
一些listeners使得JMeter运行表现出来.但是唯一的方法是检查run菜单中的start选项,如果是disable的而且stop是enabled,那么JMeter就在运行你的测试计划,至少表面上看来如此。
3。
5ScopingRules
JMeter测试树中包含的elements是分级和有次序的.一些elements在测试中有严格的等级要求(Listeners,ConfigElements,Post-Processors,Pre—Processors,Assertions,Timers),而其他一些有primarilyordered的要求(controllers,samplers).当你创建测试计划时,你需要建立一个有次序的sample请求(通过sampler),这些反映了一组需要执行的测试步骤。
这些请求经常在有序的controllers中组织。
例图1
请求的次序将为:
one,two,three,four。
有些controllers会影响他们sub-elements,你可以在componentreference中查看这些。
一些其他的elements是有级别的.例如,Assertion在测试树中是有级别的。
如果他的父亲节点是一个request,那么它将仅仅影响该request。
如果父节点是一个controller,那么它将影响该controller的所有后代的请求。
例如:
Assertion#1仅仅应用到RequestOne上。
而Assertion#2应用到RequestTwo和Three上.
另外一个关于Timers的示例:
在这个例子中,request的名字反映了他们在测试中应该执行的次序。
Timer#1将应用到RequestTwo,Three和Four上(注意对于分等级的elements如何排序毫不相关)。
Aserrtion#1将仅仅应用到RequestThree上.Timer#2将影响所有的请求。
如果你想想任何一个request通过树的路径被传递,到它的父节点,在到它的父节点的父节点,以此类推,在每一级的父节点上集合所有的configurationelements,那么你就知道它是如何工作的了.
注意:
对于Configurationelements中的HeaderManager,CookieManager和Authorizationmanager来说,与其他的ConfigurationDefaultelements不同.ConfigurationDefaultelements被整合成一个Sampler访问的集合.而Manager的设置不会被整合。
如果超过一个的Manger在Sampler的范围中,只有一个Manager被使用,但是目前还无法判断那个被使用。
4测试计划的elements
测试计划对象现在拥有了一个新的checkbox选项,叫做”功能测试”.如果选择,JMeter将记录所有server为每个sample返回的值.如果你已经在测试listeners中选定了一个文件,那么这些数据将被写入到文件中.这个有助于你通过一个小型的测试来检验JMeter是否配置正确,而你的服务器返回正确的结果。
值得注意的是这个文件的大小将增长的很快使得JMeter的性能降低.这个选项在做压力测试时需要关闭掉(默认为关闭)。
如果你不将数据写入文件中,那么这个选项没有任何不同.
4.1ThreadGroup
ThreadGroupelements是任何一个测试计划的开始点。
所有的测试计划中的elements都要在一个ThreadGroup中.如名字显示那样,threadgroupelement控制了一组线程,JMeter使用这些线程来执行你的测试。
你可以做如下操作来控制threadgroup:
●设置线程的数量
●设置ramp—up周期
●设置测试执行的次数
每一个线程都会完全和独立的执行测试计划而不影响其他线程。
多线程可以用于模拟到你的服务器程序的并发连接。
Ramp-upperiod告诉JMeter需要多长时间来"ramp—up"去装载全部的线程.如果10个线程被使用,而ramp—upperiod为100秒,那么JMeter会花100秒来使得所有的10个线程运行。
每个线程将在上个线程开始后10秒开始。
又如,如果有30个线程而ramp—up为120秒。
那么每个线程在延迟4秒后启动。
延迟时间=ramp-upperiod时间数/线程数
默认的,一个threadgroup被设置为不限定的循环.你可以设置threadgroup循环的次数.如果设置为一次,那么JMeter将执行测试一次然后停止。
Version1。
9将允许你预定时间去运行测试.选定Scheduler的checkbox,你就可以设定时间。
4。
2Controllers
JMeter有两种controller:
Samplers和LogicalControllers
Samplers告知JMeter发送请求到服务器。
例如,如果你想JMeter发送一个HTTP请求,就添加一个HTTPRequestSampler。
当然你也可以定制一个请求,在Sampler中添加一个或多个ConfigurationElements。
LogicalControllers使你可以定制JMeter发送请求的逻辑.例如,你可以添加一个InterleaveLogicController来控制交替使用两个HTTPRequestSamplers。
同样,一个特定的Logiccontroller,作为ModificationManager,可以让你修改请求的结果。
4。
2。
1Samplers
Sampler告知JMeter发送请求到server端.JMeter现在有如下的samplers:
●FTPRequest
●HTTPRequest
●JDBCRequest
●JavaObjectRequest
●LDAPRequest
●SOAP/XML-RPCRequest
●WebService(SOAP)Request(AlphaCode)
每个sampler都有一些可以设置的properties。
你也可以在一个sampler中添加ConfigurationElements来做更多的设置。
当然,值得注意的是JMeter按照request在tree中添加的次序来发送请求。
如果你想同时发送多个并发的同一种类的request,例如HTTPrequest,到同样一台服务器。
可以考虑使用一个DefaultsConfigurationElement。
每个Controller拥有一个或多个默认元素.
当然不要忘记添加一个Listener到你的ThreadGroup中来察看和存储你的测试结果.
如果你对JMeter对你的request返回的response进行简单的校验很感兴趣,你可以在RequestController中添加一个Assertion。
例如,在一个web程序的压力测试中,服务器可能会返回多个成功的"HTTPResponse”,但是页面也许包含了一些错误或者丢失的部分。
你可以添加assertions来检查特定的HTML标签,常见的错误字符串,等等诸如此类的数据。
JMeter允许你使用常规表达式来创建这些assertions。
4。
2。
2LogicControllers
LogicController使得用户可以定制JMeter发送请求的时机。
LogicControllers可以拥有如下的任何一个作为子elements:
Samplers(requests),ConfigurationElement和其他的LogicControllers.LogicControllers可以改变子elements的请求次序.他们可以自己修改requests,使得JMeter可以重复发送请求等等.
为了便于理解LogicControllers在测试计划中所起的作用,举例如下:
●TestPlan
⏹ThreadGroup
◆OnceOnlyController
●LogicRequest(anHTTPrequest)
◆LoadSearchPage(HTTPsampler)
◆InterleaveController
●Search“A”(HTTPSampler)
●Search“B”(HTTPSampler)
●HTTPdefaultrequest(ConfigurationElement)
◆HTTPdefaultrequest(ConfigurationElement)
◆CookieManager(ConfigurationElement)
首先表明了login请求只会在第一次运行时执行。
其余的请求将自动跳过它。
达到这个效果的原因就是因为OnceOnlyController的影响左右.
在login之后,下一个Sampler加载了searchpage(想象一下,一个在用户登录后就转入search页面来做搜索的web程序).这个仅仅是一个简单的请求,并未通过任何LogicController的筛选过程.
在search页面加载后,我们想做一些搜索.实际上,我们要做两个不同的搜索.然而,我们想在每个独立的搜索中重新加载search页面.我们可以用四个简单的HTTPrequestelements来达到目的(载入search页面,搜索
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Jmeter 中文 手册 完全