JMeter中的后端监听器的实现

 更新时间:2021年09月06日 11:11:41   作者:HenryXiao8080  
本文主要介绍了JMeter中的后端监听器的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、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类中被使用到

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

继承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异步来接收测试结果集

在这里插入图片描述

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

在这里插入图片描述 

JMeter如何引入该jar

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

到此这篇关于JMeter中的后端监听器的实现的文章就介绍到这了,更多相关JMeter 后端监听器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud 客户端Ribbon负载均衡的实现方法

    SpringCloud 客户端Ribbon负载均衡的实现方法

    Ribbon 是 Netflix 提供的一个基于 Http 和 TCP 的客户端负载均衡工具,且已集成在 Eureka 依赖中,这篇文章主要介绍了SpringCloud 客户端Ribbon负载均衡的实现方法,需要的朋友可以参考下
    2022-06-06
  • SpringBoot启动失败的原因及其解决方法

    SpringBoot启动失败的原因及其解决方法

    对于springboot的启动失败,相信大家都有经历,但是为什么会启动失败,以及怎么解决都只能通过日志进行查看,在这里,我会将常见的springboot启动失败的报错一一展示,需要的朋友可以参考下
    2024-06-06
  • SSM项目中配置LOG4J日志的方法

    SSM项目中配置LOG4J日志的方法

    本篇文章主要介绍了SSM项目中配置LOG4J日志的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Mybatis-Plus条件构造器select方法返回指定字段方式

    Mybatis-Plus条件构造器select方法返回指定字段方式

    这篇文章主要介绍了Mybatis-Plus条件构造器select方法返回指定字段方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

    谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,Wild

    这篇文章主要介绍Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType的相关资料,需要的朋友可以参考下
    2015-10-10
  • java实现上传图片尺寸修改和质量压缩

    java实现上传图片尺寸修改和质量压缩

    这篇文章主要为大家详细介绍了java实现上传图片尺寸修改和质量压缩,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • JAVA  字符串加密、密码加密实现方法

    JAVA 字符串加密、密码加密实现方法

    这篇文章主要介绍了JAVA 字符串加密、密码加密实现方法的相关资料,需要的朋友可以参考下
    2016-10-10
  • java学习之理解自动拆装箱特性

    java学习之理解自动拆装箱特性

    这篇文章主要介绍java自动拆装箱特性以及java自动拆装箱的应用,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家早日升职加薪
    2021-09-09
  • Java RabbitMQ的TTL和DLX全面精解

    Java RabbitMQ的TTL和DLX全面精解

    过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。DLX, 可以称之为死信交换机,当消息在一个队列中变成死信之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列
    2021-09-09
  • 基于Struts文件上传(FormFile)详解

    基于Struts文件上传(FormFile)详解

    下面小编就为大家带来一篇基于Struts文件上传(FormFile)详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论