要启动JMeter,在Windows下运行jmeter.bat,或者在UNIIX下运行文件jmeter,这两个文件都可以在bin目录下找到。在一个很短的等待之后,JMeter的图形用户界面就会出现。在bin目录中,还有其他几个测试人员可能会用到的脚本。
Windows脚本文件(.cmd要求Windows2000及其后续版本)。
- jmeter.bat:运行JMeter(默认GUI模式)。
- jmeter-n.cmd:加载一个JMX文件,并在非GUI模式下运行。
- jmeter-n-r.cmd:加载一个JMX文件,并在远程费GUI模式下运行。
- jmeter-t.cmd:加载一个JMX文件,并在GUI模式下运行
- jmeter-server.cmd:以服务器模式启动JMeter.
- mirror-server.cmd:在非GUI模式下启动JMeter镜像服务器。
- shutdown.cmd:关闭一个非GUI实例(优雅的)。
- stoptest.cmd:停止一个非GUI实例(中断式的)。
通过环境变量JVM_ARGS,我们可以修改在jmeter.bat中定义的JVM设置。例如:set JVM_ARGS="-Xms1024m -Xmx1024m -Dpropname=propvalue"
jmeter -t test.jmx...
UNIX脚本文件,应该能在绝大多数Linux/UNIX系统下运行。
jmeter:运行JMeter(默认GUI模式)。定义了一些JVM设置,但并不是对所有JVM都生效。
jmeter-server:以服务器模式启动JMeter(通过合适的参数来调用jmeter脚本)
jmeter.sh:没有指定JVM选项的非常基础的jmeter脚本
mirror-server.sh:在非GUI模式下启动JMeter镜像服务器。
shutdowm.sh:关闭一个非GUI实例(优雅的)。
stoptest.sh:停止一个非GUI实例(中断式的)。
如果当前使用的JVM不支持某些JVM选项,那么测试人员就有必要修改jmeter shell 脚本。另外用户可以使用JVM_ARGS环境变量来修改或者添加JVM选项,例如:
JVM_ARGS="Xms1024m -Xmx1024m" jmeter -t test.jmx [etc.]
就会覆盖脚本中的堆设置。
1.JMeter的Classpath
JMeter会通过一下目录中的jar文件加载类。
JMETER_HOME/lib:公用包
JMETER_HOME/lib/ext:包含JMeter元件和补丁。
如果测试人员开发了新的JMeter元件,那么需要将对应jar包放到JMeter的lib/ext目录下。JMeter会自动加载这些jar包中的JMeter元件。
公用支持的jar包,应该被放在lib目录下。如果测试人员不想将JMeter扩展包放在lib/ext目录下,那么就需要jmeter.properties文件中定义属性search_paths。不要在lib/ext目录中放置公用包,它应该只供JMeter元件使用。
其他jar包(JDBS、JMS实现包,以及任何其他支持包)都应该被放置在lib目录,而非lib/ext目录下。
测试人员还可以加载房子啊$JAVA_HOME/jre/lib/ext目录中的公用包,或者在jmeter.properties文件中定义user.classpath属性。
需要注意的是,设置环境变量CLASSPATH对JMeter不起作用。这时因为JMeter是以“java-jar”方式启动,而该Java命令会默默地忽略CLASSPATH变量,而且使用-jar可以携带-classpath/cp选项(这对所有Java程序都是一样的,并非只针对JMeter)。
2.使用代理服务器
如果测试对象隐藏在防火墙/代理服务器之后,那么测试人员需要向JMeter提供防火墙/代理服务器的主机名和端口号。用户可以通过命令行来运行jmeter.bat/jmeter文件 ,并携带如下参数,以达到提供主机名和端口号的目的。
- -H[代理服务器主机名或者IP地址]
- -P[代理服务器端口]
- -N[不使用代理的主机](例如*.apache.org|localhost)
- -u[代理验证的用户名-如果要求的话]
- -a[代理验证的密码-如果要求的话]
- 例如:jmeter-H my.proxy.server -P 8000 -u username -a password -N localhost.
3.非GUI模式(命令行模式)
对于非交互测试,测试人员可以选择不使用GUI来运行JMeter。要达到这一目的,可以使用如下命令选项:
- -n指明JMeter以非GUI模式运行
- -t[JMX文件(其中包含测试计划)的名称]
- -I [JTL 文件(存放测试采样数据)的名称]
- -j [JMeter 日志文件的名称]
- -r 在JMeter属性“remote_hosts”中定义的服务上远程运行测试脚本
- -R [远程服务器列表]在指定的远程服务器上运行测试
- 这些JMeter脚本同样允许测试人员指明可选的防火墙/代理服务器的信息:
- -H[代理服务器主机名或者IP地址]
- -P[代理服务器端口号]
搜索微信公众号:TestingStudio霍格沃兹的干货都很硬核