无界面压测
使用无界面压测的原因如下:
- 可视化页面会占用系统资源,为了节约测试机的资源,采用无界面压测的方式,类似于最小化安装的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的可视化界面中的导航栏,找到 运行
,在其中就可以找到了