• 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t


    jmeter中也可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务。

    安装性能监控插件(jmeter-plugins)后报如下错误,是由于jmeter版本过高jmeter3.1可以成功

    如果你使用插件Extra1.4和Standard1.4  那么会遇到高版本method兼容问题,比如版本大于3.1就会在jmeter.log抛出异常,甚至直接jmeterGUI界面启动卡死现象:

    java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t,

    解决办法两种:

    第一种使用jmeter3.1搭配jmeter的插件Extras1.4.0和Standard -plugin1.4.0的只支持jmeter3.2以下,不包括3.2!!! 

    第二种解决办法使用jmeter-plugin-manager(推荐,毕竟高版本修复了很多问题,此方法安装的jp@gc -PerfMon Metrics Collector插件监控支持到jmeter5.1以及最新版本):

    使用jmeter-plugin-manager,安装PerfMon-2.1version解决了以上方法以高版本监控插件不兼容问题

    先在Avaliable Plugins搜索Per,然后勾选,再ApplyChanges and Restart jmeter ,此外你还要在被压测服务器安装ServerAgent-2.2.1 ,并启动它,同时注意防火墙必须开放端口4444

    systemctl start firewalld

    firewall-cmd --zone=public --add-port=4444/tcp --permanent 

    firewall-cmd --reload

    firewall-cmd --zone=public --list-ports

    //Jmeter all release version of history
    https://archive.apache.org/dist/jmeter/binaries/

    Jmeter3.1.zip
    https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.1.zip

    Jmeter 5.1zip
    https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.1.zip

    方法一你需要的插件准备

    https://jmeter-plugins.org/downloads/file/JMeterPlugins-Extras-1.3.1.zip

    https://jmeter-plugins.org/downloads/file/JMeterPlugins-Standard-1.3.1.zip

    并且把  JMeterPlugins-Extras.jarJMeterPlugins-Standard.jar复制到Jmeterlibext 目录下,如果你还有其它需要下载的插件可以通过插件市场地址:https://jmeter-plugins.org/downloads/old/,当然我推荐你使用

    3 .  ServerAgent-2.2.1

    ServerAgent-2.2.1下载地址 https://github.com/undera/perfmon-agent

    2.Jmeter主服务器

    启动jmeter,在监听器的选项中增加了一些jp@gc开头的监听器,监控cpu、内存、i/o的监听是jp@gc -PerfMon Metrics Collector,host/ip下填写被压测服务器的ip

    serverAgent.zip下载地址:

    https://github.com/undera/perfmon-agent

    三.agentserver启动:

    Add Row可以添加需要监控的服务器ip,端口号默认为4444,监控内容CPU/MEMORY/DISKS I/O等

    3.agent服务器

    将ServerAgent-2.2.1.zip解压后放在需要监控的服务器上,并开启

    startAgent.bat(windows)

    startAgent.sh(linux)

    linux服务器上首先将startAgent.sh设定为可执行文件:

    chmod 777 startAgent.sh

    ./startAgent.sh执行文件

    如果要将该文件设置为后台执行不关闭

    Nohup ./startAgent.sh &

    Add Row可以添加需要监控的服务器ip,端口号默认为4444,监控内容CPU/MEMORY/DISKS I/O等

     

    四.结果查看

    在服务器上开启startAgent服务后,再在jmeter上运行脚本,可以在jp@gc - PerfMon Metrics Collector上查看监控的图形结果

    注意事项:默认端口占用以及修改:

    执行时监控cpu的插件可能会报错:java.io.IOException: Agent is unreachable via TCP

    windows环境下解决方法:

    serveragent的默认端口为4444,使用jmeter监听器时,有时即使开启了agent服务也会无法监听,这时候可能是端口被占用了,需要修改端口,那么该如何做呢?

    1、cmd命令进入ServerAgent的根目录;

    2、在cmd中输入: java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 5555 --tcp-port 5555

    PerfMon Metrics Collector and Server Agent原理和使用可以查看官方文档

    具体可以查看官方的文档: 
    https://jmeter-plugins.org/wiki/PerfMon/

    https://jmeter-plugins.org/wiki/PerfMonAgent/

    结语:实际压测尤其是稳定性测试中我不推荐用jmeter进行这些指标监测,因为cpu,mem,disk的数据jmeter可读性太差,我自己写了一篇关于如何搭建压测性能平台的技术文档可以加我群咨询我:

  • 相关阅读:
    jenkins使用
    pytest+allure生成接口自动化测试报告
    charles系列
    go语言安装使用
    go语言介绍
    Nginx
    python面试题-python相关
    pyhon全栈开发学习目录
    补充【第二章】supervisor守护进程保障服务
    python全栈开发基础【补充】python中列表排序,字典排序,列表中的字典排序
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/11361216.html
Copyright © 2020-2023  润新知