JMeter是一款非常不错的免费开源压力测试工具,越来越多的公司在使用。不过,在使用过程中可能会存在一些问题,比如:GUI模式非常消耗资源,单个客户端测试无法达到目标压力。而使用非 GUI 模式,即命令行模式运行JMeter测试脚本能够大大缩减所需要的系统资源,使用远程启动模式也可以像Loadrunner那样进行分布式测试。下面跟随小编一起来看看吧。
工具/原料
- JMeter安装包
- 一台客户机
- 一台服务器
非GUI模式下运行JMeter
-
非GUI模式包括在Windows和Linux下运行,小编在这里演示Windows下使用DOS命令运行,Linux下与之类似。
-
使用Badboy录制脚本导入JMeter后调试脚本正常运行,并配置好线程数、循环数、调度器等,如下图:
-
在命令行中输入:cmd进入DOS命令窗口,再进入JMeter安装的bin目录,如下图:
-
DOS命令执行语法:jmeter -n -t <testplan filename> -l <listener filename>。
--当前目录运行
JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。如果在D:\E\02_Test\A2_性能测试\JMeter\apache-jmeter-2.13\bin目录下执行以上命令,JMeter会去该目录下寻找product_select.jmx脚本并把执行结果放在该目录。
--其他目录运行
如果脚本在其他目录,并且执行结果存放到其他目录,需要使用绝对路径,如:jmeter -n -t D:\E\02_Test\A2_性能测试\JMeter\JMeter脚本\product_select.jmx -l D:\E\02_Test\A2_性能测试\JMeter\JMeter测试结果\product_select_20160311001.jtl
-
product_select_20160311001.jtl是刚才执行测试的结果,使用JMeter图形界面打开即可看到查看详细报告内容,如下图:
END
远程启动JMeter
-
JMeter客户端和JMeter远程服务器安装好JMeter,并配置JVM环境变量,使用java -version命令来检测JDK是否安装成功,如下图:
-
JMeter客户端和JMeter远程服务器网络环境能够互通,使用ping命令来检测,小编这里客户端IP为:192.168.20.242,服务端为:192.168.5.90,检测结果如下:
-
在JMeter远程服务器上运行JMETER_HOME/bin/jmeter-server (UNIX)或者JMETER_HOME/bin/jmeter-server.bat(Windows)脚本,小编这里是UNIX服务器,使用命令:./jmeter-server -Djava.rmi.server.hostname=192.168.5.90,如下图:
-
在JMeter客户端上修改/bin/jmeter.properties文件,找到属性"remote_hosts",使用JMeter远程服务器的IP地址作为其属性值。可以添加多个服务器的IP地址,以逗号作为分隔。
例如:
#remote_hosts=127.0.0.1
remote_hosts=192.168.5.90:1099,192.168.5.91:1099,192.168.5.92:1099
-
在JMeter客户端上远程启动,JMeter客户端会自动向JMeter远程服务器上分发测试计划,可以查看远程服务器执行情况,执行完成后在客户端可以查看具体执行结果,如下图:
END
注意事项
- 非GUI模式下运行JMeter和远程启动JMeter都要先配置好JMeter测试策略