Jmeter用户手册
整理人:大傻
2008-12-12
1介绍
Apache JMeter 是100%纯JA V A桌面应用程序,被设计为用于测试CS结构的软件。
同时也可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlets,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用常规表达式来创建这些assertions。
2开始
2.1安装
下载安装最新的版本,将会包含所有你需要建立和运行Web,FTP,JDBC和JNDI测试的文件。如果你想进行JDBC测试,你需要使用合适的JDBC driver。JMeter中不包含JDBC drivers。其他可能需要下载的软件:
Bean Shell
Java Activation Framework – needed for Java Mail
Java Mail – needed for mail visualiser and SOAP test
JMS – for JMS samples
General Java Kit
接下来一步,就是浏览“建立测试计划”一章来熟悉JMeter的基本操作,例如:添加和删除元素。最后,浏览适当的章节来学习如何建立不同种类的测试计划。例如,如果你对Web应用程序的测试比较感兴趣,就浏览“建立一个Web测试计划”章节。其他种类的测试计划建立的章节包括:JDBC,FTP和JNDI。
一旦你熟悉了建立和运行JMeter测试计划,就可以开始熟悉各种配置参数,例如:timers,listeners,assertions和其他的参数,来帮助你更好地控制你地测试计划。
2.2系统要求
JMeter 1.8 以上的版本需要JDK1.4以上的版本支持运行。JMeter可以运行在如下操作系统上:Unix,Windows和Open VMS。
l安装JDK:
l JA V A的环境变量设置
1.使用鼠标右击“我的电脑”->属性->高级->环境变量
2.系统变量->新建->变量名:JA V A_HOME 变量值:d:\jdk
3.系统变量->编辑->变量名:Path 在变量值的最前面加上:%JA V A_HOME%\bin;
桌面无法显示4.系统变量->新建->变量名:CLASSPATH 变量值:。;
l安装Tomcat
CATALINA_HOME=d:\tomcat
User Manual
2.3可选项目
如果你打算进行JMeter开发或者使用Sun的Java标准扩展包,你需要如下所列的可选包:
2.3.1Java Compiler
需要1.4以上的JDK版本
2.3.2SAX XML Parser
JMeter默认使用Apache的Xerces XML parser。如果你想使用一个不同的XML parser,将第三方的parser包放入JMeter的classpath中,然后使用设置的parser包的全名更新文件jmeter。properties
2.3.3Email Support
JMeter拥有有限的邮件功能来发送测试结果到指定邮箱中。应用邮箱功能,需要将Sun 的JavaMail包放入JMeter的classpath中并激活。
2.3.4SSL Encryption
为使用HTTPS测试web服务器,JMeter需要设立SSL机制。将所需要的SSL类包放入JMeter的classpath
中,更新jmeter。properties来注册SSL Provider。可以使用SSL Manager 用来管理这些证书。注意:在JDK 1.4以上版本,SSL已经作为标准库加入。
2.3.5JDBC Driver
你需要将你的数据库供应商提供的JDBC drivers添加到classpath中来进行JDBC测试。
2.3.6Apache SOAP
Apache SOAP测试需要mail。jar和activation。jar。只需要将下载的两个jar文件复制到JMeter下的lib目录中,JMeter会自动的识别和使用它们。
2.4运行
运行JMeter,使用jmeter。bat (windows) 或jmeter (UNIX)。
2.4.1JMeter的classpath
JMeter自动在/lib和/lib/ext目录中的jar中的类。如果你想添加其他JAR文件到JMeter 的classpath中,你必须复制他们到lib目录中。如果你开发了一个JMeter特定组件,生成jar 包后复制到lib目录下的ext目录中。而且,你也可以将有效的jar文件安装到$JA V A_HOME/jre/lib/ext目录中。
值得注意的是设置CLASSPATH环境变量没有任何作用。这是因为JMeter使用”java –
jar”开始,java命令自动忽略CLASSPATH值,同时-jar选项的使用将屏蔽掉-classpath和-cp 选项。
2.4.2使用代理服务器
如果你在防火墙或者代理服务器后进行测试,你需要给JMeter提供防火墙和代理服务器的hostname和port号。在命令行运行jmeter。bat或jmeter命令并使用如下参数:n-H 代理服务器的hostname或者IP地址
n-P 代理服务器的port号
n-u 代理服务器验证使用的用户名
n-a 代理服务器验证使用的用户密码
【示例】
jmeter –H yahoo –P 8080 –u test –a password
2.4.3非GUI模式
对于那些非交互的测试,你可以使用非GUI的模式运行JMeter。使用如下命令:
n-n 指定的JMeter运行在non-GUI模式下
n-t 包含测试计划的JMX文件的名称
n-l 用于记录简单结果的JTL文件名称。
n-r 运行所有的在jmeter。properties中指定的远程主机。(或在命令行中提供的覆盖属性提供的远程主机名。
也可以同时提供防火墙或者代理服务器的信息
n-H 服务器名或IP地址
n-P 端口号
【示例】
jmeter –n –t my。jmx –l log。jtl –H yahoo –P 8800
2.4.4服务器模式
为了对分布式测试,可以运行在服务器模式下,然后通过GUI来控制每个服务器。
运行jmeter-server/jmeter-server。bat,附加下列可选项:
n-H 代理服务器的hostname或IP地址
n-P 端口号
【示例】
jmeter-server –H yahoo –P 8000
2.4.5通过命令行来重载Properties
Java system properties,JMeter properties和logging properties 能够直接通过命令行来直接重载而不用修改jmeter。properties文件。使用以下参数项:
n-D[prop name]=[value] 定义一个java system property值
n-J[prop name]=[value] 重载一个JMeter property
n-L[category]=[priority] 重载一个logging setting,设置一个指定的类别名给指定的优先级别
n-L标志位可以不指定category,将其设为root级别
【示例】
jmeter –Duser。dir=/home/mstover/jmeter_stuff \ -Jremote_hosts=127.0.0.1
–Ljmeter。engine=DEBUG
jmeter –LDEBUG
【注意】
命令行输入的properties在启动时先处理,但是晚于logging system的建立。所以尝试使用-J标志去更新log_level或者log_file的properties将没有任何效果。
2.4.6Logging和error信息
如果JMeter检查到一个错误,一个信息就被写道log文件中。Log文件的名字是在jmeter。properties文件中定义的。默认值位jmeter。log,在JMeter的开始目录中可以看到,例如bin 目录中。
除了记录错误信息,jmeter。log文件中同时记录了一些测试运行的信息。例如:
n10/17/2003 12:19:20 PM INFO - jmeter.JMeter: V ersion 1.9.20031002
n10/17/2003 12:19:45 PM INFO - jmeter。gui.action.Load: Loading file: c:\mytestfiles\BSH.jmx
n10/17/2003 12:19:52 PM INFO - ine.StandardJMeterEngine: Running the test!
n10/17/2003 12:19:52 PM INFO - ine.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1.
n10/17/2003 12:19:52 PM INFO - ine.StandardJMeterEngine: Continue on error
n10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 started n10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 is done
n10/17/2003 12:19:52 PM INFO - ine.StandardJMeterEngine: Test has ended Log文件有助于定位错误出现的原因,因为它并未打断测试来显示一个error窗口。
2.5配置JMeter
如果你想修改JMeter运行使用的properties,你可以通过两种方式:修改bin目录中的文件jmeter。properties或者创建你自己的properties文件使用命令行来指定该文件。Parameters
Attribute Description Required
ssl.provi der 你可以指定一个类支持SSL.如果你使用sun的JSSE,那么是:
com.sun.ssl.internal.ssl.Provider。JMeter默认的https
支持在JDK1.4中包含。
No
xml.parse r 你可以指定一个你自己的XML parser. 默认值为:
s.parsers.SAXParser
No
user.dir JMeter用于保存和装载测试用例的目录。No
remote_ho sts 使用逗号分割的远程JMeter主机。如果你运行在分布式环境下,
列出你拥有的运行的JMeter远程主机.允许你通过GUI去控制这些
机器。
No
not_in_me一个组件的列表,都是你不想在JMeter的菜单中看到的.由于No
nu JMeter添加了越来越多的组建,你可能希望自己定制你的JMeter
来仅仅显示那些你感兴趣的组建.你可以列出他们类名或者类的标
签(在JMeter界面中显示的字符串)在这里,他们将不会被显示。
3建立测试计划
一个测试计划描述了一系列JMeter在运行中要执行的步骤。一个完整的测试计划包含一个或多个Thread Groups,logic controllers,sample generating controllers,listeners,timers,assertions和configuration elements。
3.1添加删除Elements
添加elements到测试计划,可以通过在tree中element上点击右键,然后从add列表中选择一个新的elem
ent。同样,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.5Scoping Rules
JMeter测试树中包含的elements是分级和有次序的。一些elements在测试中有严格的等级要求(Listeners,Config Elements,Post-Processors,Pre-Processors,Assertions,Timers),而其他一些有primarily ordered的要求(controllers,samplers)。当你创建测试计划时,你需要建立一个有次序的sample请求(通过sampler),这些反映了一组需要执行的测试步骤。这些请求经常在有序的controllers中组织。例图1
发布评论