在上一篇中安装好了Jmeter环境,在这一篇中将主要分享如何使用jmeter在linux中进行单机压测。
1.项目部署
在这里我们先简单部署一下测试环境,所用到的项目环境是个jar包,先在linux上home目录下新建app目录,然后通过rz命令将项目jar包上传到该目录下,然后执行命令启动项目:
nohup java -jar pinter.jar &
需要注意的点:
尽量选linux上不常用的目录来存储项目,减少一些不必要的麻烦。
因为用的是阿里云的服务器,项目所用到的端口一定要在安全组中开放。
2.Jmeter压测
2.1.编写脚本
因为linux上不能编写脚本,所以进行压测的脚本需要先在本地开发调试完成,在配置好了之后上传到linux中使用,这里准备了一个小脚本,10个线程,执行3分钟,如下所示。
2.2.上传脚本
用mkdir命令在home目录下新建scripts目录,进入scripts,使用rz命令将待压测脚本上传到当前目录下。
2.3.修改响应时间间隔
压测的时间jmeter默认响应(打印结果)输出日志为30秒一次,可以在jmeter的bin目录下修改jmeter.properties文件中下面的值。
2.4.进行压测
执行命令启动脚本:
jmeter -n -t 12_linux测试脚本.jmx -l test-10.jtl
-n: 命令行模式 no-gui;
-t:jmx脚本路径;
-l:jtl结果文件名称,默认存放在当前路径;
请求数据总共分2种,一种是带“+”号的为当前新增数据,带“=”号的为截止目前为止的汇总数据,请求执行效果和对应字段解释如下所示。
3.查看报告
3.1.查看聚合报告
jmeter在linux中生成的压测报告无法在linux上直接查看,可以将生成的jtl文件通过sz命令下载到本地电脑,然后在jmeter图像界面中导入到当前脚本聚合报告中查看,可以看到tps和我们在linux上看到的基本一致,如下图所示。
3.2.生成报告
在linux中生成的压测数据,不能直接以报表的形式展示,但是可以通过自带的命令生成美观的报告,可以将生成的报告下载到本地电脑上进行查看。
Html的报表生成步骤如下:
1、进入jmeter的bin目录下,修改reportgenerator.properties;
2、修改jmeter.reportgenerator.overall_granularity=1000(报表中数据展示间隔1秒) ;
3、创建一个存放数据报表的文件夹(我这里是在/home/scripts目录下新建了一个report目录);
4,执行命令:jmeter -g test-10.jtl -o ./report/
上述命令执行成功后,会将报表数据生成到report目录下,但是无法在linux中打开,将index.html文件拿到本地也无法正常查看,需要整个report目录下数据做支撑,因为不是压缩包无法直接通过sz下载,所以需要先执行压缩命令将文件进行压缩,如下所示。
#如果没有安装zip,需要先安装
yum install -y zip
zip -r report.zip report
下载压缩文件:
sz report.zip
在本地电脑上解压,然后打开index.html文件就可以看到很多维度的报表数据,丰富且精美,如下图所示。
4.生成报告失败原因
要想文件生成成功需要注意以下几点:
生成报告的.jtl文件格式必须是csv,如果发现格式不对,可以在bin目录下的jmeter.properties文件中修改:
jmeter.save.saveservice.output_format=csv
生成报告的report目录必须是空的,否则会报错,如下所示。