装上JMeterPluginsManager
安装插件管理器能让你在图形界面里搜索、安装和管理所有插件,省去手动下载JAR包的麻烦。
安装方法一:手动安装(推荐)
从JMeter Plugins官网下载jmeter-plugins-manager-x.x.x.jar文件,将其复制到JMeter安装目录下的lib/ext文件夹中,然后重启JMeter。重启后,如果顶部菜单栏的Options下拉菜单中出现了Plugins Manager选项,就说明安装成功了。
安装方法二:运行安装程序
在JMeter的bin目录下,可以找到一个名为jmeter-plugins-manager-installer.jar的文件,直接双击运行它,程序会自动完成插件管理器的安装。
插件分类详解
以下插件均可通过Options->Plugins Manager->Available Plugins标签页进行勾选安装。
图表监控
Basic Graphs
插件提供了三个最基础、也是最常用的实时性能图表:每秒事务数(TPS)、响应时间随时间变化曲线、以及活动线程数变化曲线。在进行任何性能测试时,几乎是必装的监听器,让你能直观地观察系统的实时负载反应。
Perf Mon Metrics Collector
作用是收集被测服务器的硬件资源使用情况,比如CPU利用率、内存占用、磁盘I/O和网络吞吐量。在压测过程中发现TPS上不去或响应时间变长时,通过它提供的服务器端监控数据,就能快速判断短板是不是出现在硬件资源方面。
Graphs Generator Listener
监听器非常适合在命令行(非GUI方式)下运行测试后使用。它会在测试执行完毕后,自动将测试过程中采集到的各项标准数据生成一系列PNG格式的图表文件或CSV数据文件。即便是在没有图形界面的服务器上运行测试,也能拿到可视化的分析报告。
线程和负载控制
Custom Thread Groups
插件提供了一组比JMeter原生线程组更精细的调度控制能力。利用它可以模拟出波浪式起伏的负载、或者先陡增后平稳的突发流量模型。如果测试目的是还原线上复杂多变的真实流量场景,这个插件非常有用。
Through put Shaping Timer
定时器能让你准确地控制请求的发送速率。只需要在界面上设定好目的吞吐量(如1000TPS)以及该速率的不断时间,JMeter就会严格按照设定的节奏向服务器施压。非常适用于进行精确的性能标准测试或者测试系统在特定服务等级协议下的表现。
Stepping Thread Group
实现了阶梯式加压的思路。可以配置起始线程数、每次增加的线程数量、每一步不断的时间以及最后要达到的最大线程数。测试启动后压力会按照预设的阶梯一步步爬升。通过观察TPS和响应时间在哪个阶梯开始恶化,能非常容易地定位到系统的性能拐点和容量上限。
协议和功能扩展类
WebSocket Sampler
取样器为JMeter增加了对WebSocket协议的支持。可以编写脚本建立WebSocket连接、向服务器发送文本或二进制消息、接收并断言服务器推送的数据。是测试在线聊天室、股票实时行情推送、网页游戏等应用的必备工具。
JWT Plugin
JWT(JSON Web Token)是常用的身份认证方式。这个插件可以在JMeter脚本运行过程中动态生成、分析和证实JWT,免去了手动编写脚本处理Token的繁琐步骤。极大地简化了那些需要在请求头中携带有效Token的RESTfulAPI测试工作。
Random CSV Data Set Config
原生的CSV数据配置元件是顺序读取数据文件的,这款插件则支持随机读取。测试场景要求为大量虚拟用户分配不重复且随机的登录账号、手机号码或商品ID,使用这个配置元件能让数据分配更加真实,避免所有线程都在操作同一个测试账号的情况。
SSH Protocol Support
插件让JMeter有了通过SSH、SCP、SFTP协议和远程Linux服务器交互的能力。需要在压测执行前后远程登录服务器清理缓存、重启服务、或者传输日志文件,用它就能将这些运维操作直接集成到JMeter的测试计划中,实现全流程自动化。
JDBC请求的说明:测试数据库性能的JDBCRequest是JMeter原生自带的取样器,不需要额外安装插件。一定要记得把对应数据库的JDBC驱动JAR包(如mysql-connector-java.jar)手动复制到JMeter的lib目录下,并重启JMeter,否则连接数据库时会报找不到驱动的错误。
报告可视化
Influx DBBackend Listener
搭建企业级实时监控大屏的组件。会将JMeter运行过程中产生的各项统计数据(如响应时间、TPS、错误率)实时写入到时序数据库InfluxDB中。再配合使用Grafana对接InfluxDB数据源,就能在前端大屏上看到动态刷新的、非常炫酷的性能曲线监控面板。
JMeter-InfluxDB-Writer
插件也是将数据写入InfluxDB供Grafana展示。特点是官方提供了一套开箱即用的Grafana仪表盘JSON配置文件,导入后生成的图表样式和标准方面和JMeter自带的HTML报告非常接近,对于想要快速搭建监控看板的团队来说比较省事。
JMeter PerfReporter
独立的第三方报告生成工具不是直接运行在JMeter内部的插件。需要先用JMeter生成JTL结果文件,然后用这个工具分析该文件。能输出一份功能强大、排版专业的中文HTML性能测试报告,其中包含了APDEX(应用性能指数)等高级考虑标准,非常适合在国内的项目交付场景下使用。
Blaze Meter Plugin
Blaze Meter是一款主流的SaaS性能测试云平台。安装此插件后可以一键将本地的JMeter测试脚本、运行日志和测试结果上传至BlazeMeter云端。借助云端的分布式算力,可以发起超过单机能力的大规模并发测试,并利用平台提供的交互式图表进行多方面分析和团队协作。
集成和工具链
Selenium WebDriver Support
插件打通了JMeter和Selenium自动化测试框架的壁垒。允许你在JMeter的线程组内直接执行Selenium WebDriver脚本。这对于测试那些严重依赖前端JavaScript渲染、单页应用页面的加载性能非常有作用,能采集到包含浏览器渲染时间在内的真实用户端到端响应时间,不只是后端接口的响应时间。
Maven JMeter Plugin
如果所在的团队使用Maven作为项目创建工具,并希望将性能测试纳入不断集成流水线,那么你需要的就是这个Maven插件。配置好之后,你就可以通过执行mvnverify或mvnjmeter:jmeter命令来驱动JMeter测试脚本自动运行,无需手动打开图形界面。
Bamboo JMeter Aggregator Plugin
这是专门为使用Atlassian Bamboo作为CI/CD工具的团队设计的。能够聚合多次创建过程中产生的JMeter测试结果,并在Bamboo的创建详情页中生成可视化的性能趋势图表。对于需要长期追踪系统性能变化、及时发现性能回退的团队非常有用。
技巧
安装流程
打开PluginsManager后,在AvailablePlugins标签页里勾选你想要安装的插件,然后点击右下角的Apply Changesand Restart JMeter按钮。JMeter会自动下载相关JAR包及其依赖,下载完成后会自动重启,非常方便。
PerfMon插件的额外配置
PerfMon Metrics Collector插件比较特殊,采用C/S架构。除了在JMeter这边安装插件,还必须在被测的服务器上运行一个名为Server Agent的小程序。
去官网下载Server Agent压缩包。
解压后上传到被测服务器,进入目录执行启动脚本:Linux环境运行startAgent.sh,Windows环境运行startAgent.bat。
保证服务器防火墙开放了默认的4444端口。
做完这几步,JMeter端的监听器才能成功连接到服务器拉取监控数据。
性能影响
ViewResultsTree这类带有详细请求响应内容的图形化监听器,在脚本调试阶段非常有用,但它们会大量消耗JMeter客户端的CPU和内存资源。在执行正式的高并发压力测试时,请必须禁用或删除这类监听器,否则客户端本身就会成为测试的短板,导致压测结果失真。