目录
jmeter在Linux下执行测试
1.背景
JMeter不仅能十分便捷地进行接口测试,同时它也是一款优秀的压测工具。但使用JMeter在自己的电脑(下称本机)上运行压测脚本时,一般会有两个瓶颈:
-
网络:本机与服务器之间的网络开销,会严重影响服务的性能表现。而且,本机与服务器一般不在同一个网段,网络瓶颈会更加明显。
-
本机性能:工作所用的笔记本,其性能很难与linux系统服务器的性能相比。而且,在Windows端运行的JMeter相比于Linux端的no-gui
模式,本身性能也会差一些。另外,压测对本机的占用,会影响我们其他工作的开展。
2.环境安装
Linux版本为Centos7,JMeter使用版本为3.3,JDK版本为1.8。参考链接https://blog.csdn.net/weixin_37018468/article/details/105685072
3.no-gui模式运行脚本
- 首先在Windows环境下,jmeter里创建一个测试计划并保存成功,脚本名称是test.jmx;
- 将脚本上传到Linux系统置顶的目录中。例如:/opt/local/jmeterScripts
- 执行一下命令:jmeter -n -t 脚本的存放路径(/usr/local/jmeterScripts/test.jmx)-l (测试结果的保存路径已经保存名称)/usr/local/testResult/test.jtl
-n表示以nogui方式运行测试计划
-t表示测试计划,后面跟测试计划名称
-l表示测试结果,后面跟测试结果文件名称
当控制台出现上图,说明脚本成功运行。
4.可以把该执行命令放在启动项里面,直接执行;
#!/bin/bash
jmeter -n -t /usr/local/jmeterScripts/test.j
4.在本地查看Linux上运行的结果
- 脚本运行结束后,会在testResult目录下生成一个test.jtl文件,将这个文件导出到windows端JMeter中的聚合报告中,即可查看测试详情。
- 使用参数化策略,将参数文件放入Linux系统中jmeter安装文件的bin目录下,同时脚本参数化设置中,文件路径写文件名
- 如果这样使用的时候参数化文件出现错误
解决方案是:在Filename处填写参数化文件在Linux系统下的绝对路径,当然这个输入框是不允许输入Linux路径格式的,需要通过引用变量的方式赋值。
用户定义的变量中填写参数化文件的完整路径:
其他可能遇到的问题就是,脚本中引用了一些jar包或者使用了插件,而linux中的JMeter安装包中未含有这些资源,最简单的解决方案就是将包含完整资源的windows端JMeter安装包压缩后上传到Linux系统中。