第三方插件jmeter-plugins.org
下载地址:https://jmeter-plugins.org/install/Install/
安装:下载后文件为plugins-manager.jar,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。
重启jemter,点击选项,最下面的一栏,如下图所示
下载PerfMon和jpgc插件
安装完插件需要重启jmeter,即可看到该监视器插件。如下图:
首先可以打开PerfMon,主要作用可以监控本地和远程操作系统cpu,内存,并支持图形展现
PerfMon主要包含两部分:ServerAgent、The Metrics Collector Listener
1)ServerAgent:
ServerAgent放在被压测的服务器上,是用来收集服务器相关性能指标(cpu、memory、tcp等)、以及jmx等metrics信息,然后通过 TCP or UDP协议来发送给jmeter。启动后,默认监听4444端口,ServerAgent是一个文本协议,可以使用任何客户端发送/接收metrics数据信息。
下载地址(https://jmeter-plugins.org/wiki/PerfMonAgent/ 或者 https://github.com/undera/perfmon-agent),解压后进入目录,执行startAgent.sh或startAgent.bat即可启动agent。
perfmon= performance monitor 性能监控
解压缩
启动文件
startAgent.bat支持windows 远程和本地监控
startAgent.sh支持liunx 远程和本地监控(jmeter也可以部署在liunx上)
同时需要提前安装好java环境(有jar包就需要java环境)
windows下启动演示
点Add Row添加需要监控的项目
Liunx下启动演示,默认4444端口
2)The Metrics Collector Listener
The Metrics Collector Listener是在jmeter上运行的插件,用来收集agent发送的metrics信息,展示图表的。
安装插件后默认已安装,如果未安装可自行下载
下载地址:(https://jmeter-plugins.org/?search=jpgc-perfmon),解压后,把lib里的两个jar拷贝到jmeter的lib目录,吧lib/ext里面的两个jar拷贝到jmeter的lib/ext目录。重启jmeter即可。
在jmeter的添加>监听器中选perfMon选项
然后jmeter上设置对应监控服务器地址
运行脚本报错
端口被占用,因为tcp和udp端口都为4444,修改其中一个,我改的udp为4445
进入到agentsserver startAgent.bat的存放目录,shift+单击空白打开命令窗口
./startAgent.bat --tcp-port 4444 --udp-port 4445
也可以查看下端口状态netstat -an
需要注意的是这里已经启动了startagent.bat,不需要再到文件夹里面点一次startagent.bat了,否则启动窗口会报端口已占用
修改后再运行脚本,不报错了,但是还是不出图表
一直显示 waiting for samples
百度了一下 waiting for samples,是这样解决的,感谢原文作者https://blog.csdn.net/m0_37785015/article/details/84885592
1.需要将数据写入一个文件:(路径随意+以.jmx或.txt等形式结尾)
2.再次运行脚本时,会出现提示框,选择默认的Append to existing file即可,选第三个也行(这里跟参考文章有出入,大家以自己的为准)。
后面发现一个问题,当我把localhost改为127.0.0.1之后,选择第一个追加 append to...再跑一次,出来的图是追加在上一次的图的基础上的结果,所以大家可以看到图例中有两组对Disks I/O 和 Swap 的监控。所以最好还是选第三个吧 重写文件
再次启动,监控图表的背景出来了,但是没有任何曲线出现
3.想要监测服务器性能,短时间是不够的,根本监测不到。修改方法有以下几种
a.将线程组中的循环次数改为永远
b.可以让Ramp-Up时间大些
c.结合调度器等方法实现同样的效果
具体可根据项目需求设置相应的数值
监控画面如下
除了监控 cpu,内存操作系统指标,TPS:每秒事务数,在性能测试中也非常关键,不过jmeter自身图表太弱,可以通过扩展插件,如图添加
Transactions per Second(tps监控插件)
还有事务相关插件Response Times Over Time
即TRT:事务响应时间