草庐IT

JMeter进阶-常用第三方插件讲解

达文西先生 2023-04-08 原文

第三方插件的安装与使用

  • 准备工作:
    1.最新版本的JMeter是默认不展示插件管理器的,所以我们需要手动添加插件管理器
    2.下载地址:https://jmeter-plugins.org/install/Install/,下载插件plugins-manager.jar,然后将jar包放在apache-jmeter-x.x.x\lib\ext路径下,重新打开jmeter客户端即可在“选项”下面可以看到了Plugins-Manager这个插件了。

Concurrency Thread Group(阶梯式加压)

安装Basic Graphs

  • 在选项–》Plugins-Manager–》Available Plugins 安装Custom Thread Groups,然后点击应用并重启jmeter,如下图:

使用方式:

  • 添加方式:测试计划 --> 线程组–>bzm-Concurrency Thread Group
    比如我们需要进行服务器进行负载测试,需要测试1分钟,30秒内以6个阶梯的方式并发到20进程,那么我们可以如下设置:

    假如我们不需要阶梯式增加,而是持续增加的方式,那么我们可以如下设置:

Basic Graphs (响应时间,并发数,TPS生成图表)

安装Basic Graphs

  • 在选项–》Plugins-Manager–》Available Plugins 安装3Basic Graphs,如下图:

案例示例:

案例:比如我们需要进行服务器进行负载测试,需要测试1分钟,30秒内以持续并发到20进程,我们分别以Transactions per Second,Active Threads Over Time,Response Times Over Time这3个监听器来示例:
Transactions per Second:(每秒事务处理率/TPS):

  • 添加方式:测试计划 -->监听器–>jp@gc - Transactions per Second
  • 图表分析:

    这里我们可以看到,每秒最大事务数为100,最小为0,一般Transactions per Second图表是配合事务控制器一起使用的

Active Threads Over Time:(每秒活动线程变化):

  • 添加方式:测试计划 -->监听器–>jp@gc - Active Threads Over Time
  • 图表分析:

    通过上图我们可以看到前30s是持续上升到每秒20并发,后续30秒一直是以每秒20并发的状态持续

Response Times Over Time:(每秒响应时间):

  • 添加方式:测试计划 -->监听器–>jp@gc - Response Times Over Time
  • 图表分析:
    从上图我们可以看到,每秒响应时间基本稳定总体事务响应时间在220毫秒左右

Composite Timeline Graph (将所有的图表合并)

安装Composite Timeline Graph

  • 在选项–》Plugins-Manager–》Available Plugins 安装Composite Timeline Graph,如下图:

    使用方式:
  • 添加方式:测试计划 --> 监听器–>jp@gc - jp@gc - Composite Graph
    然后我们添加多个第三方监听器Response Times Over Time,Active Threads Over Time,PerfMon等第三方监听器,然后添加 jp@gc - Composite Graph,最后运行,运行完成之后我们需要在 jp@gc - Composite Graph监听器的Graphs模块下选择要合并查看的数据即可,如下图所示:

    最后我们只需要在Chart模块下查看图表并分析即可,这里要注意的一点是上图事务的tps和事务的响应时间图表颜色是一样的,因为它是直接获取其他监听器的数据的,这其中就包括线条的颜色,所以我们只需在Chart模块双击颜色框即可自动更换颜色,方便我们查看数据,如下图所示:

PerfMon (服务器资源使用率生成图表)

安装PerfMon

  • 在选项–》Plugins-Manager–》Available Plugins 安装PerfMon,如下图:

    服务器上启动Serveragent服务
  • perfmon的使用还需要一个serveragent服务的支持,下载jmeter插件的同时也需要下载一个Serveragent,下载地址:https://github.com/undera/perfmon-agent/blob/master/README.md
  • windows下启动startagent.bat,如下图:

  • 假如正常启动的话应该如下图所示:
  • Linux下启动startagent.sh,需要先下载1.8jer,选择Server JRE (Java SE Runtime Environment) 8u202,然后根据安装运行的系统进行选择,这里我们选择jre-8u201-linux-x64.tar.gz进行下载解压,解压完成后我们将其复制到ServerAgent-x.x.x文件夹下,如下图所示:

    然后我们将startAgent.sh用vim编辑模式打开,把java 替换为jre1.8.0 _201\bin\java如下图所示:

    然后我们使用命令./startAgent.sh启动服务即可,启动成功应该如下图所示:

使用方式:

  • 添加方式:测试计划 --> 监听器–>jp@gc - PerfMon Metrics Collector
  • 假如我们需要查看服务器内存与cpu使用的资源,我们可以这样设置,先填写服务器的地址和端口号,然后再选择性能指标,假如需要对单个进程测试资源消耗则可在Metric parameter中进行设置,总体配置如下图所示:

    然后并发10个进程运行20s,运行结果如下图所示:

    生成图表之后我们可以在右键保存为csv文件,这样我们可以获得更详细的数据(如下图):

关于性能指标

  • CPU:
    • 1.对于各指标项,数值都是代表百分比,比如默认配置(combined)下在曲线图中看到某个时间的数值是30,即代表此时总的cpu使用时间占比为30%。
    • 2.有两点比较有用的地方值得说明:一是在Scope区域,可以通过Per Process选项来获取指定进程的CPU使用情况,二是在CPU Cores区域,我们可以选择监控指定的单个Core。
  • Memory:
    • 1.各指标项中,usedperc(默认)和freeperc两项的数值代表与总内存的百分比,其余指标项的数值都是指内存大小,选中对应想,可以看到Metric Unit区域单位配置将变为可用,通常Mb会比较适合观察。
    • 2.同样,也可以选择监控指定进程的数据。
  • Network I/O:
    • 1.单位kbps
  • Disk I/O:
    • 1.各指标项中,queue(默认)的数值代表等待I/O队列长度,reads、writes分别代表每秒处理的读/写次数,readbytes、writebytes顾名思义,代表每秒读/写的数据量,单位同样在Metric Unit区域配置,通常Mb会比较适合观察
      运行中遇到的问题:
  • Windows提示socket write error或startAgent.bat闪退
    启动成功后,使用jmeter时运行时报错java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_311] at java.net.SocketOutputStream.socketWrite(Unknown Source) ~[?:1.8.0_311] at java.net.SocketOutputStream.write(Unknown Source) ~[?:1.8.0_311] 或startAgent.bat闪退
    查看hs_err_pidxxxx.log错误日志与下图一样:

    出现这种情况请尝试下载1.8_jer解决
    1.下载1.8jer,选择Server JRE (Java SE Runtime Environment) 8u202,然后根据安装运行的系统进行选择
    2.解压缩文件,并将jdk1.8.0_202目录下的jrew文件复制到ServerAgent-x.x.x文件夹下如图:

    3.然后编辑startAgent.bat文件,并将文本内java的替换成当前目录下jre\bin\java.exe,如下图:

    然后重新运行即可
  • 提示ERROR: java.io.IOException: Agent is unreachable via TCP
    出现这种提示极有可能是端口被占用了,因为启动startAgent是使用默认端口4444,此时请查看端口444是否被占用,假如端口被占用那么使用参数--tcp-port 端口来启动startAgent.bat或者startAgent.sh,比如将端口号4444修改为4445
    windows 示例startAgent.bat --tcp-port 4445
    linux 示例./startAgent.sh --tcp-port 4445
  • 远端连接服务器时提示java.net.ConnectException: Connection timed out: connect
    出现以上提示极大概率是防火墙没有关闭,请尝试关闭防火墙之后重试

有关JMeter进阶-常用第三方插件讲解的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  5. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  6. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  7. ruby - 尝试比较两个文本文件,并根据信息创建第三个 - 2

    我有两个文本文件,master.txt和926.txt。如果926.txt中有一行不在master.txt中,我想写入一个新文件notinbook.txt。我写了我能想到的最好的东西,但考虑到我是一个糟糕的/新手程序员,它失败了。这是我的东西g=File.new("notinbook.txt","w")File.open("926.txt","r")do|f|while(line=f.gets)x=line.chompifFile.open("master.txt","w")do|h|endwhile(line=h.gets)ifline.chomp!=xputslineendende

  8. 电脑怎么截图?进来看(8种常用截图方法) - 2

    电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,

  9. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

  10. IDEA使用LeetCode插件 - 2

    前言我们习惯用idea编写、调试代码,在LeetCode上刷题时,如果能够在IDEA编写代码,并且做好代码管理,是一件事半功倍的事情。对于后续复习题目,做笔记也会非常便利。本文目的在于介绍LeetCodeEditor的使用,以及配置工具类,最终目录结构如下:note:放置笔记src:放置代码leetcode.editor.cn:插件LeetCodeEditor自动生成utils:自定义的工具包,可用于自动化输入测试用例,定义题目需要的类(结构体)out:运行测试时自动生成LeetCodeEditorGitHub:https://github.com/shuzijun/leetcode-edit

随机推荐