无界面压测
使用无界面压测的原因如下:
- 可视化页面会占用系统资源,为了节约测试机的资源,采用无界面压测的方式,类似于最小化安装的Linux系统
- 更快捷,只需要运行启动命令即可
- 主要适用于性能压测
集成(不可能在测试的时候拿着JMeter来回点击,而是使用jekins持续集成进行测试)
内存溢出问题
在JMeter的bin目录里面找到 jmeter.bat 文件
找到如下这段代码
if not defined HEAP (
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)其中的 -Xms 和 -Xmx 这两个参数后跟的 1g 就是指定的内存大小,1g基本上不会出问题了,如果再出问题,自行更改即可
注意事项
使用 Notepad++ 打开其中的 jmeter.properties
在其中搜索 jmeter.save.saveservice.output_format,会找到被注释掉的一段代码,意思是默认输出的格式
复制被注释掉的代码在下一行,解开注释,将 csv 改为 xml,如下
jmeter.save.saveservice.output_format=xml
再在其中搜索 jmeter.save.saveservice.response_data,意思是是否保存响应数据
复制,解开注释,等号右边的值改为true,如下
jmeter.save.saveservice.response_data=true
再在其中搜索 jmeter.save.saveservice.samplerData,意思是是否保留请求数据
复制,解开注释,等号右边的值改为true,如下
jmeter.save.saveservice.samplerData=true
配置完如上内容后,重启JMeter,不重启的话是不会生效的
参数、命令及查看测试报告
-n:表示无界面压测-t:指定.jmx后缀的JMeter脚本-l:生成.jtl后缀的测试报告,需要指定名字
命令如下
jmeter -n -t test.jmx -l report.jtl导出的 .jtl 测试报告文件,在 聚合报告 里就可以查看,方法如下图所示
这样来查看 .jtl 测试报告也太麻烦了,每次输出都要在界面中手动查看
可以给命令添加两个参数,让其自动生成到某个文件夹下
注意
这样的方式需要改配置文件,将 jmeter.properties 配置文件中的改回 csv,修改后,该配置如下所示
jmeter.save.saveservice.output_format=csv
命令如下所示,意思是导出测试报告到该路径下的 reports 文件夹中
jmeter -n -t test.jmx -l report.jtl -e -o reports执行完成后,直接打开 reports 文件夹下的 index.html 文件,就能够查看了。效果如下
除了上述的参数之外,还有两个参数比较重要,被用来做 分布式集群压测
-r:表示启动所有的远程压力机执行压测-R:指定特定的远程压力机执行压测。指定的话需要写上远程机的IP和Port,多个之间使用英文逗号,分隔,例:jmeter -n -t test.jmx -l report.jtl -e -o reports -R 127.0.0.1:8080
关于 远程启动 可以在JMeter的可视化界面中的导航栏,找到 运行,在其中就可以找到了