1.0概述
1.0.1建立测试计划(Test Plan)
你需要启动jmeter的界面模式。
然后,你可以选择录制浏览器上的或本地的应用。你也可以用菜单里面的
Fiel->Templates…->Recording
你也可以手工建立你的测试计划。确保你读过第三章并理解了主要概念。
你可能会使用以下的操作调试你的脚本:
Run->Start no pauses
Run->start
Validate on Thread Group
还有View Result
Tree(结果树视图)渲染器和Tester(检测器)(CSS/JQUERY,JSON,Regexp,XPath)。
确保你在建立测试计划时遵循了第16章所讲的内容
1.0.2执行负载测试(LoadTest)
你的测试计划建好后,你可以开始你的负载测试。第一步是配置JMeter运行要用的注入器,这对于其它负载测试工具也一样,包括:
在cpu、内存及网络方面正确的大小;
操作系统调整;
Java设置:确保你安装了JMeter支持的Java版本;
正确的Java堆大小。默认JMeter一个堆使用512MB,这可能不足以支撑你的测试,取决于id测试计划和你需要跑的线程数量。
所有都准备好后,你需要使用命令行模式(也叫非界面模式)来执行负载测试。
不要在界面模式下进行负载测试!
使用非界面模式,你可以创建一个CSV(或者XML)文件记录结果并且结束负载测试后JMeter会生成一个HTML格式的报告(14章)。默认情况下载负载测试执行时JMeter会提供一个总结。
你也可以在使用后台监听器(18章)时得到实时结果(15章)。
1.0.3负载测试分析
你的负载测试完成后,你可以使用HTML报告来分析你的负载测试。
1.0.4开始
最简单的方式来使用JMeter,首先下载最新的版本并安装。发布版包含了所有你在建立或执行大多数测试时需要的文件。
如果你需要JDBC性能测试,当然,你需要问供应商相应的JDBC driver。JMeter没有JDBC driver。
JMeter有KMS API jar,但不包括JMS客户端实现(client implementation)。如果你要跑JMS的测试,你需要在下载JMS提供的相应的jar包。
参考http://jmeter.apache.org/usermanual/get-started.html#classpath,如何安装额外的jar包
下一步,启动JMeter,查看用户指导中的第二章来熟悉JMeter的基础使用方法。
最后,查看相应的章节看看怎样建立一个特殊的测试计划。例如,如果你对测试Web应用感兴趣,那就看看第四章。其它有关测试计划的章节:
当你适应了如何建立、执行JMeter测试计划,你可以看看其它各种配置元素(timers, listeners, assertions等等)这会让更好的控制测试计划。
1.1要求
JMeter需要你对计算机环境至少要满足一些要求。
1.1.1Java版本
Jmeter完全支持JVM8,我们建议你安装那些主流版本中的最新版本。JMeter3.2中Java9还没有经过完全的测试。
由于JMeter只用了标准Java接口,如果你用JRE跑JMeter失败是由于JRE的安装问题的话请不要填错误报告。
1.1.2操作系统
JMeter是个纯Java应用,如果Java安装正确的话,应该可以在任何系统中正常使用。
测试通过的操作系统可以在https://wiki.apache.org/jmeter/JMeterAndOperatingSystemsTested中查看。
及时你的操作系统没有在维基的页面中列出,如果JVM兼容的话JMeter也应该可以正常使用
1.2可选项
如果你计划从事JMeter开发,那么你将需要几个下面列出的可选包。
1.2.1JavaCompiler
如果你想要建立JMeter源或者开发JMeter插件,那么你将需要一个完整的JDK8或者更高级别的版本。
1.2.2SAX XML解析器
JMeter源自Apache的Xerces XML解析器。你可以选择告诉JMeter使用另一个XML解析器。需要将第三方解析器的类加入JMeter的classpath中,并更新jmeter.properties文件中有关解析器的全部类名。
1.2.3Email支持
JMeter有扩展的Email性能。可以通过email发送测试报告,提供POP3(S)/IMAP(S)样板。也有SMTP(S)样板。
1.2.4SSL
Encryption
测试使用了SSL加密(HTTPS)的服务器,JMeter需要安装提供的SSL,这是在Java1.4和以上版本会出现的问题。如果你的Java版本不支持SSL,那么需要添加一个外部的实现。将必要的加密包加入JMeter的classpath。同样,需要更新system,propeties文件来注册SSL提供者。
JmeterHTTP默认协议级别为TLS。可以通过编辑JMeter属性来更改。
https.default.protocol在jmeter.properties或user.properties中。
JmeterHTTP样本被设置为允许所有的证书,不论是否被信任、不管认证周期等等。这是为了给测试服务器提供最大化的灵活性。
如果服务器需要客户端认证,也可以提供。
还有SSL管理器,这是给更高级的认证控制提供的。
JMeter代理服务器支持录制HTTPS(SSL)。
SMTP样板可以随意的使用一个存储在本地的可信认证或信任所有认证。
1.2.5JDBC
Driver
途观你想做JDBC测试,你需要添加你的数据库提供商的JDBC driver到classpath中。确保文件是一个jar文件而不是zip包。
1.2.6JMS客户端
JMeter现在允许加入来自Apache
Geronimo的JMS接口,因此你只需要添加适当的JMS客户端,安装来自JMS提供商的jar包即可。具体内容请去看他们的文档。https://wiki.apache.org/jmeter/上可能也有一些信息。
1.2.7ActiveMQ JMS库
你需要将activemq-all-X.X.X.jar加入你的classpath,比如将它存在lib/目录下。具体情看
ActiveMQ initial configuration page 。
安装额外的jar包情看 JMeter Classpath 。
1.3安装
我们建议使用者使用最新版本。
安装一个发布的版本,最简单的是解压zip/tar文件到你想要的目录。你需要正确安装JRE/JDK并配好环境变量。
如果文件地址存在空格,可能会出现问题(特别是在客户端-服务器模式下)。
安装目录的结构应该是长这样(X和Y是版本号)
apache-jmeter-X.Y
apache-jmeter-X.Y/bin
apache-jmeter-X.Y/docs
apache-jmeter-X.Y/extras
apache-jmeter-X.Y/lib/
apache-jmeter-X.Y/lib/ext
apache-jmeter-X.Y/lib/junit
apache-jmeter-X.Y/licenses
apache-jmeter-X.Y/printable_docs
你可以重命名父目录(如apache-jmeter-X.Y),但不要改变任何子目录的名字。
1.4允许Jmeter
要运行JMeter,只需运行jmeter.bat(Windows)或者jmeter(Unix)文件。这些文件能在bin目录下找到。很快,Jmeter
GUI就会出现。
GUI模式应该只在创建测试脚本时使用,非GUI模式应该在负载测试中使用。
bin目录下还有其他的脚本,你可能会用到,Windows脚本文件(CMD文件需要Win2000或者更高版本操作系统):
jmeter.bat
运行 JMeter (默认GUI Mode)
jmeterw.cmd
运行 JMeter 不带shell控制台窗口 (默认GUI Mode)
jmeter-n.cmd
放入一个JMX文件来运行一个non-GUI测试
jmeter-n-r.cmd
放入一个JMX文件来运行一个non-GUI远程测试
jmeter-t.cmd
放入一个JMX文件在GUI模式中载入它
jmeter-server.bat
在服务器模式下运行JMeter
mirror-server.cmd
在non-GUI模式下运行JMeter镜像服务器
shutdown.cmd
运行Shutdown温和的(gracefully)结束一个non-GUI实例
stoptest.cmd
运行Shutdown紧急结束一个non-GUI实例
也许你需要编辑JMeter的shell脚本,如果JVM设置不支持某些你在用的JVM。JVM_ARGS环境变量可以用来重写或者添加JVM设置。例如:
JVM_ARGS="-Xms1024m
-Xmx1024m" jmeter -t test.jmx [etc.]
这条脚本将重写HEAP设置。
1.4.1JMeter的Classpath
JMeter可以从如下目录中的jar包中自动查找类:
JMETER_HOME/lib 公共jar包
JMETER_HOME/lib/ext
JMeter部件和插件
如果你开发了新的JMeter部件,那么你应该打包成jar并将他们拷贝到JMeter的lib/ext目录下。JMeter将自动查找这里的JMeter部件。不要在lib/ext下存放公共jar包或者插件需要的附属包;这只用来存放JMeter部件及插件。
如果你不想在lib/ext目录下存放插件的jar包,那么可以在jmeter.properties中的search_paths中定义属性。
公共jar包和附属jar包可以放在lib目录下。
如果你不想在lib目录下存放这些包,那么可以在jmeter.properties中的user.properties或plugin_dependency_paths中定义属性。下面会解释这两个的区别。
其它jar包(例如JDBC,JMS实现和其它JMeter代码需要的支持库)应该放在lib目录下,不能放在lib/ext,或者添加到uer.classpath中。
JMeter只会查找.jar文件,不找.zip文件。
你也可以把公共jar文件装在$JAVA_HOME/jre/lib/ext中,或者你可以设置jmeter.properties中user.classpath的属性。
注意,这时CLASSPATH环境变量的设置将不会产生影响。这是因为JMeter是使用"java
-jar"启动的,当-jar使用-classpath/cp操作时java命令会默默的忽视CLASSPATH变量。
这会在所有Java工程中出现,不光是JMeter。