JMeter中的后端 * 的实现

作者:HenryXiao8080 时间:2022-07-24 17:58:35 

一、JMeter后端 * 介绍

说到JMeter后端 * ,必须要从源头BackendListener开始说,最后延伸到我们需要的BackendListenerClient,下面我们一一展开

BackendListener是啥?
源码简单介绍BackendListener是一种异步监听并获取到测试结果的实现类,也就是说测试(例如发出的HTTP请求的响应结果,及请求数据)都会被封装在SampleResult对象中并被其监听接收


/**
* Async Listener that delegates SampleResult handling to implementations of {@link BackendListenerClient}
*
* @since 2.13
*/
public class BackendListener
       extends AbstractTestElement
       implements Backend, Serializable, SampleListener, TestStateListener, NoThreadClone, Remoteable {
}

为什么BackendListener能接收SampleResult?
由于BackendListener实现了SampleListener接口,而SampleListener在JMeterThread类中被使用到

JMeter中的后端 * 的实现

BackendListener有什么用?
由于它是异步接收压测元数据的,会将测试结果的元数据传给BackendListenerClient,后面的核心都是BackendListenerClient

JMeter中的后端 * 的实现

BackendListenerClient,AbstractBackendListenerClient介绍
BackendListenerClient是一个接口类,通过抽象类AbstractBackendListenerClient来扩展其功能,我们要获取到测试元数据都要通过继承AbstractBackendListenerClient来实现,包括JMeter原生自带的influxdb、graphite都是通过继承AbstractBackendListenerClient来获取元数据的

JMeter中的后端 * 的实现

继承AbstractBackendListenerClient需要实现三种方法


public interface BackendListenerClient {
//开启多线程执行压测之前,传入线程上下文,进行前置处理
   void setupTest(BackendListenerContext context) throws Exception; // NOSONAR

//多线程压测过程中获取到测试结果集,传入当前方法进行处理
   void handleSampleResults(List<SampleResult> sampleResults, BackendListenerContext context);

//多线程压测结束之后进行一个后置处理
   void teardownTest(BackendListenerContext context) throws Exception;
}

二、github开源JMeter后端 *

地址:jmeter-backend-listener-kafka

jmeter-backend-listener-kafka原理介绍

jmeter-backend-listener-kafka其实就是通过继承AbstractBackendListenerClient来将异步获取到的测试结果集SampleResult进行相应处理,然后将元数据上报至kakfa,这样你通过消费kafka Topic异步来接收测试结果集

JMeter中的后端 * 的实现

通过实现的handleSampleResults方法来处理数据并上报至kafka

JMeter中的后端 * 的实现 

JMeter如何引入该jar

进入到github该开源代码,下载最新的解压包

JMeter中的后端 * 的实现

将下载压缩包对应的jar放入JMeter项目应用目录下的\lib\ext ,JMeter扩展包都是存放在ext目录

打开JMeter控制台你就能看到后端 * 多了该选项

JMeter中的后端 * 的实现

同时面板填入对应kafka地址及topic后,运行压测就会将测试结果集上报至kafka并接收,同时面板支持额外填写对应的Key-Value数据,因为这都可以通过BackendListenerContext来接收该上下文的参数

JMeter中的后端 * 的实现

来源:https://blog.csdn.net/weixin_40686603/article/details/114627465

标签:JMeter,后端 ,
0
投稿

猜你喜欢

  • Spring Boot如何优化内嵌的Tomcat示例详解

    2023-11-13 17:52:53
  • Java使用开源Rxtx实现串口通讯

    2023-06-13 19:15:47
  • Java泛型T,E,K,V,N,?与Object区别和含义

    2022-02-23 07:25:30
  • 轻松理解Java面试和开发中的IoC(控制反转)

    2023-08-10 03:00:35
  • java实现简单石头剪刀布小游戏

    2021-09-17 07:25:41
  • mybatis-plus排除非表中字段的操作

    2022-04-22 03:48:41
  • java实现列表、集合与数组之间转化的方法

    2023-11-29 10:17:38
  • 浅析Java中的异常处理机制

    2021-08-19 05:42:48
  • Java基础题新手练习(二)

    2022-03-10 00:11:57
  • Spring Boot 2.0.0 终于正式发布-重大修订版本

    2021-08-12 08:25:51
  • Spring与Struts整合之让Spring管理控制器操作示例

    2022-08-22 12:53:46
  • Java查找不重复无序数组中是否存在两个数字的和为某个值

    2023-08-22 16:44:40
  • Java多线程之同步工具类Exchanger

    2022-07-05 03:50:54
  • Java毕业设计实战之平行志愿管理系统的实现

    2023-09-12 14:34:23
  • SpringMVC+EasyUI实现页面左侧导航菜单功能

    2022-09-30 17:11:01
  • 详谈java中int和Integer的区别及自动装箱和自动拆箱

    2023-01-18 23:25:20
  • MVVM简化的Messager类实例代码

    2023-12-23 07:37:50
  • Java获取e.printStackTrace()打印的信息方式

    2022-05-18 05:19:26
  • Java如何有效避免SQL注入漏洞的方法总结

    2021-11-22 07:01:54
  • Scala小程序详解及实例代码

    2023-03-29 12:10:56
  • asp之家 软件编程 m.aspxhome.com