JMeter中的后端监听器的实现

网友投稿 1301 2022-12-11

JMeter中的后端-的实现

JMeter中的后端-的实现

目录一、JMeter后端-介绍二、github开源JMeter后端-jmeter-backend-listener-kafka原理介绍JMeter如何引入该jar

一、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 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进行相应处http://理,然后将元数据上报至kakfa,这样你通过消费kafka Topic异步来接收测试结果集

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

JMeter如何引入该jar

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot项目组引入JMeter的实现步骤
下一篇:详谈ThreadLocal
相关文章

 发表评论

暂时没有评论,来抢沙发吧~