Jmeter插件PerfMon Metrics Collector安装使用及报错解决

Jmeter作为一个轻量级的性能测试工具,开源、小巧、灵活的特性使其越来越受到测试人员喜爱。在实际的项目中,特别是跨地区项目,排除合作方指定要求使用Loadrunner作为性能测试工具外,Jmeter会是首选。

本篇文章,就着重介绍下Jmeter服务器性能监控插件PerfMon Metrics Collector的安装使用以及使用过程中所遇问题的解决方法。

Jmeter插件的下载安装

可能大家会有疑问,为什么不是PerfMon Metrics Collector的安装?如果去网上搜一下Jmeter插件,你会发现大都是针对某一个插件怎么安装,然而实际安装中可能会出现各种各样的问题,反而很少有人解答,其实,只要把Jmeter插件包完整安装,你就可以随心所欲的使用了。

下载地址:https://jmeter-plugins.org/install/Install/,下载界面如下:

插件安装:下载完成后的文件是plugins-manager.jar格式,将其放到Jmeter安装目录下的\lib\ext目录,然后重启Jmeter即可。

服务端插件下载和配置

要使用PerfMon Metrics Collector,还需一个配合使用的插件ServerAgent(需要插件的小伙伴可以找天天圈索取)。

敲黑板:不要把压缩包解压在本地,本地根本用不到,要把整个压缩包放到服务器上面!

如果服务器是Linux环境:

执行命令:cd /usr/bin ,用Xftp把ServerAgent-2.2.1.rar上传到服务器的/usr/bin下;

执行命令:unrar -e ServerAgent-2.2.1.rar ,解压压缩包;

执行命令:rm -rf ServerAgent-2.2.1.rar ,删除原压缩包;

执行命令:cd ServerAgent-2.2.1 ,进入ServerAgent-2.2.1目录;

执行命令:chmod 777 startAgent.sh ,将startAgent.sh设置成可执行文件;

执行命令:sh startAgent.sh ,启动Agent服务;

执行命令:nohup ./startAgent.sh & ,把Agent服务放到后台并且不挂起。

如果服务器是Windows环境,将压缩包ServerAgent-2.2.1.rar解压,直接运行startAgent.bat即可,如果出现下图情况表示启用成功:

PerfMon Metrics Collector插件使用

1、插件添加

打开Jmeter,根据项目需求调整脚本,最后添加各类监控。

 Host/IP:要监控服务器的地址

 Port:默认端口

Metric to collect:监控资源配置项

Add Row、Copy Row、Delete Row:分别对应的是添加按钮、复制按钮、删除按钮

Chart:曲线图展示主界面

Rows:曲线图小界面以及不同资源曲线所代表的颜色

Settings:设置

2、监控使用策略

如果测试场景的测试执行时间较长,采集的监控数据量比较大,为了在GUI模式查看曲线图时更方便、快捷,建议将各个监控指标项单独使用一个PerfMon监听器,从而配置不同的指标项数据存储到不同的文件中,测试执行完毕后,载入数据和数据查看都会更快。

如果预计数据量不会太大,可以以服务器为单位来划分PerfMon监听器。这样可以方便观察到整个测试过程中,某台服务器各项资源使用情况的变化趋势。

对于分布式服务、为了方便观察各个节点的负载分布、负载变化趋势,可以考虑将同类型的节点放置到同一个PerfMon监听器,以便对比观察。

3、曲线图数值

当一个PerfMon监听器中展示多种指标项的数据时,为了曲线图的可观察性,插件会自动进行优化:将展示的数值在采集到的真实数值上放大。目的是为了保证不同数据项在同一坐标系中展示时,各项变化趋势都能够被观察到。

4、曲线图设置

Use relative times:用于配置曲线图x轴表示相对时间(测试开始时为0)还是实际系统时间Auto-zoom rows for best fit:勾选,则会有上面讲曲线图数值时提到的展示数据自动放大的功能,取消勾选则全部展示采集的实际数值Limit number of points in row to XX points:勾选后可以设定曲线图展示的采样点数量,我们的测试报告会有不同的角色查看,其中一些角色可能不具备也不需要对监控数据的细节理解能力。

此时我们提供的监控曲线图应该是易读的,如果按照实际的所有采样点来渲染出曲线图,可能会有很多偏离趋势的噪点数据,这对于不了解的人来说可能会有很多疑惑,所以当我们有了分析结论,最后报告呈现的时候,可以考虑通过调整采样点,来让曲线图更好的展示资源使用趋势,消除其他不必要的信息。

Force maximum Y axis value to XX:不勾选的情况下,插件在描绘曲线图的时候,会根据数值大小自动调整Y轴最大值,以达到更佳可读性。

Graph Options:图形选项,控制曲线图的宽度和绘制标记。

下面给大家展示一个某个项目的监控结果:

PerfMon Metrics Collector插件使用过程中可能遇到问题的解决方法

1、一直报错 ERROR: java.net.ConnectException: Connection refused: connect

a.检查ServerAgent有没有在服务器上正常启用

b.服务端的防火墙是否关闭

c.默认端口是否被占用

如果确定是端口被占用,在statAgent目录下运行 java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777 更改默认端口。

2.出现报错 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)

这个报错是因为所用JMeter版本过高不支持 jp@gc - PerfMon Metrics Collector 插件导致,可下载低版本的JMeter,比如Jmeter3.1版本。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498894.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信安数学(验证定理6.3.2~6.3.3)

定理6.3.2 如果n是对于基b的强伪素数,则n是对于基b得到欧拉伪素数 nint(input("给定一奇合数n:")) bint(input("给定一个整数b:")) def solution(a,b):#若b>a,则交换两个数的值if(b>a):taabbtr b #初…

聊一聊Python量化交易

在金融领域,量化交易已经成为一种越来越受欢迎的交易方式。它通过使用数学模型来分析市场,自动化执行交易决策,以此来获取超额回报。近年来,Python因其简洁易学、功能强大而成为量化交易领域的首选编程语言。本文将详细介绍Python…

为什么猫咪挑食不吃猫粮?适口性好、普口性价的主食冻干推荐

现代养猫人士往往把自家的小猫看作是生活中的小宝贝,十分宠爱。最令人头疼的就是猫咪挑食不吃猫粮,为什么猫咪挑食不吃猫粮?猫咪挑食应该怎么办?今天为大家分享一个既不让咱宝贝猫咪受罪又可以改善猫咪挑食的方法。 一、为什么猫咪…

camunda7流程引擎外部任务(External Task)如何使用

camunda7流程引擎支持两种执行服务任务的方式: 内部任务:同步调用与流程应用程序一起部署的代码外部任务:在列表中提供可由员工轮询的工作单元 第一个选项可以通过委托代码(Delegation) 或者脚本(Script)…

C#,数值计算,求解微分方程的吉尔(Gear)四阶方法与源代码

1 微分方程 微分方程,是指含有未知函数及其导数的关系式。解微分方程就是找出未知函数。 微分方程是伴随着微积分学一起发展起来的。微积分学的奠基人Newton和Leibniz的著作中都处理过与微分方程有关的问题。微分方程的应用十分广泛,可以解决许多与导数…

【Micropython教程】key按键与EXTI中断

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、按键的使用1.1 按键的简介1.2 读取按键的高低电平 二、EXIT外部中断2.1 EXIT外部中断简介2.2 外部中断基础知识2.3 设置外部中断2.4 示例代码 总结 前言 M…

Linkedln领英账号限制问题|通过代理IP安全使用Linkedln

LinkedIn是跨境外贸必备的拓客工具,世界各地的许多专业人士都使用领英来作为发布和共享内容的主要工具,这使得它成为跨境出海必备的渠道工具。 但是不少做外贸的朋友都知道,领英账号很容易遭遇限制封禁,但如果善用工具&#xff0…

基于transform的scale属性,动态缩放整个页面,实现数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求

文章目录 一、需求背景:二、需求分析:三、选择方案:四、实现代码:五、效果预览:六、封装组件: 一、需求背景: 数据可视化大屏是一种将数据、信息和可视化效果集中展示在一块或多块大屏幕上的技…

string字符串进行分割

c标准库中&#xff0c;对string字符串并没有提供分割操作&#xff0c;需要自己手动实现此功能。 方式1&#xff1a; 采用 std::stringstream 输入字符串&#xff0c;通过getline()函数&#xff0c;来对字符串进行分割。 #include <sstream>void getSplit(std::string s…

探究前端路由hash和history的实现原理(包教包会)

今天我们来讲一讲前端中很重要的一个部分路由&#xff08;router&#xff09;&#xff0c;想必前端小伙伴对‘路由’一词都不会感到陌生。但是如果哪天面试官问你&#xff0c;能大概说一说前端路由的实现原理吗&#xff1f; 你又会如何应对呢&#xff1f; 今天勇宝就带着大家一…

移动端WEB开发之响应式布局推特

1&#xff0c;响应式开发 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置&#xff0c;从而适配不同设备的目的 设备划分 尺寸区间 超小屏幕&#xff08;手机&#xff09; …

项目技术栈-解决方案-消息队列

项目技术栈-解决方案-消息队列 概念应用场景1. 异步处理 参考文章消息队列&#xff08;Message Queue&#xff09; 概念 “消息”是在两台计算机间传送的数据单位。 消息可以非常简单&#xff0c;例如只包含文本字符串&#xff1b; 也可以更复杂 &#xff0c;包括对象等。 队…