Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于模拟http请求对软件进行压力测试。下载地址:
https://jmeter.apache.org/download_jmeter.cgi
更改语言为中文
通过 【Options】->【Choose Language】变更为简体中文。
Windows下新建测试模型
线程组
选中测试计划,右键添加线程组:
number of Threads(users):并发用户数
Ramp-Up Period(in seconds):全量并发启动的完成时间
Loop Count: Forver/n, Forver:一直运行;n:执行次数
Duration(seconds):循环时间
下图为,10并发,1秒内并发数达到10,持续30秒:
http请求默认值
为线程组添加配置元件->http请求默认值:
设置超时时间,防止大量connect timeout error:
http请求头管理器
为线程组添加配置元件->添加信息头管理器,例如设置content-type为application/json:
http请求
为线程组添加取样器->http请求:
监听器
jmeter提供了多种监听器,可根据需求选择,还可以添加jmeter插件,添加扩展监听器:
实际测试
jmeter推荐用户使用非GUI模式压测,GUI模式只建立jmx模型和测试。实际压测时,将jmx文件上传至Linux服务器,使用Linux版进行压测。jmeter启动时也做了如下提示:
之前GUI下生成的jmx文件命名为ll-login.jmx,Linux测试如下:
jmeter -n -t ll-login.jmx -l result.jtl -e -o result/
参数解释:
-t, --testfile <argument>
运行jmeter测试(.jmx)文件
-l, --logfile <argument>
文件记录样本
-n, --nongui
在非GUI模式下运行的JMeter
-e, --reportatendofloadtests
generate report dashboard after load test
-o, --reportoutputfolder <argument>
output folder for report dashboard
执行后会生成result.jtl结果,以及result目录下可用浏览器直接打开的汇总结果。
JMeter HEAP参数
修改参数:
vim jmeter
默认值如下:
HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
参数解释:
-Xms1g
表示JVM Heap(堆内存)最小尺寸1g,初始分配
-Xmx1g
表示JVM Heap(堆内存)最大允许的尺寸1g,按需分配。
-XX:MaxMetaspaceSize=256m
-XX:MaxMetaspaceSize参数设置元空间最大值,默认是没有上限的,也就是说系统内存上限就是它的上限。
-XX:MetaspaceSize选项指定元空间初始大小,默认21m,超过后会进行fullGC。
添加jmeter插件
下载地址
https://jmeter-plugins.org/install/Install/
下载plugins-manager.jar并放在jmeter安装路径下的/lib/ext/目录下,重启jmeter。
在options选项下会新增Plugins Manager选项,如下:
进入Plugins Manager查看可安装插件(Available Plugins),其中3 basic Graphs包含三种图像:
活动线程数变化曲线
响应时间变化曲线
每秒事务处理率
点击右下角Apply Change and Restart JMeter即可安装成功。
日志分析
jmeter内分析
为线程组添加tps监听器,导入之前生成的result.jtl结果,如图:
浏览器查看
在浏览器查看生成的result目录下的文件: