Skip to content

JMeter的插件体系

JMeter 的插件体系

简介

JMeter插件管理器(Plugins Manager)是一个工具,它提供了一个方便的平台来安装、更新和管理JMeter的各种插件,是其强大功能和灵活性的重要体现,允许用户通过安装和管理第三方插件来扩展和增强JMeter的功能。

JMeter 为何要插件化

  • 让所有⼈都可以贡献代码,⽽且即使代码存在问题,也不会影响核⼼代码的稳定性。插件不影响 JMeterEngine 的发压功能。
  • ⽀持⼆次开发,满⾜不同业务场景的特定需求。 例如 Dubbo, Thrift 等多种协议。
  • 让代码以功能为纬度聚合起来,⽽不是某个⽚⾯的逻辑结构,在代码数量庞⼤的场景尤为重要。

JMeter 的插件化介绍

  • JMeter 常见的原件都可以常见化
  • Sampler 采样器 => HTTP,FTP,TCP, Kafka,Java Request
  • Thread Group 线程组=> RampUp Thread Group .. etc
  • Data Set 数据集 => CSV,变量,Redis Data Set
  • Listener 监听器 => 默认,事务,BackEndListener …etc

todo

Java 插件加载

  • ⼀个服务程序(jar):定义了⼀些RPC的服务,希望能实现在运⾏时动态加载外部某个⽬录下的jar,运⾏某个特定服务。
  • 解耦:特定服务的实现与服务框架解耦,便于独⽴开发、维护和拓展。
  • 可选:缩⼩服务模块的体积。实际业务不必要的服务可裁剪。
  • 开放:开发⼈员可⾃⾏开发服务实现,放在插件⽬录。
  • 插件协议:所有的插件模式⼀定有⼀套协议,由插件的调⽤⽅和实现⽅共同遵守。
  • 动态加载:通过⾃定义类加载器加载外部⽬录下的jar。

JMeter 免费插件

  • jmeter-plugins.org:是 Apache JMeter 的一组独立插件集合,提供了众多不同的插件,包括监听器(Listeners)和采样器(Samplers)等,极大地扩展了 JMeter 的功能。这些插件通常由社区贡献者开发,并经过广泛测试以确保其稳定性和性能。
  • WebSocket 采样器插件: https://bitbucket.org/pjtr/jmeter-websocket-samplers/overviewhttps://github.com/maciejzaleski/JMeter-WebSocketSampler是两个独立的免费开源插件,用于对 WebSocket 应用进行性能测试。WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,这些插件使得 JMeter 能够发送和接收 WebSocket 消息,从而能够测试支持 WebSocket 的应用程序。
  • CqlJmeterhttps://github.com/Mishail/CqlJmeter 是一个免费的开源插件,用于对 Apache Cassandra 进行性能测试。Apache Cassandra 是一个高性能的分布式数据库,支持大规模数据集的存储。这个插件使得 JMeter 能够执行 Cassandra CQL(Cassandra Query Language)查询,从而测试 Cassandra 的性能和可扩展性。
  • BlazeMeter插件:是一个基于云的免费插件,它将 JMeter 的测试结果(包括日志、JTL 文件和 JMX 文件)自动保存到云端。该插件还提供了交互式报告分析功能,允许用户比较过去的测试结果,并轻松分享结果。这对于团队协作和性能测试分析非常有用。
  • Statistical Aggregate Report:这是一个新的可视化插件,提供了一个比 Swing Graph Report 更清晰的图表。它的源代码是可用的,因此用户可以根据需要进行定制或贡献代码。这个插件为测试结果的聚合和分析提供了更好的可视化支持。
  • Enhanced JDBC Sampler:这个插件是一个增强的 JDBC 采样器,支持预编译语句(prepared statements)等功能。其源代码也是可用的,允许用户根据需要进行扩展或修改。这对于需要执行复杂数据库操作的性能测试场景非常有用。
  • Markov4JMeter:一个基于 Apache 许可证版本 2.0 的开源插件,它允许通过基于马尔可夫链和状态图元素(如守卫和动作)的概率用户配置文件来扩展测试计划。此外,它还可以根据用户定义的数学公式在测试运行期间动态调整活动并发线程的数量。这对于模拟复杂用户行为和负载模式非常有用。
  • MysqlCollectorPlugin:这是一个用户贡献的代码,用于创建 MySQL 监听器插件。该插件允许将测试结果直接写入 MySQL 数据库,以便进行后续分析或与其他系统集成。这对于需要将测试结果集成到现有数据库或报告系统中的场景非常有用。

总结

  • 简介
  • JMeter 为何要插件化
  • JMeter 的插件化介绍
  • Java 插件加载
  • JMeter 免费插件