浅谈监听器之后端监听器

浅谈监听器之后端监听器

“后端监听器”(Backend Listener)是一种高级功能,用于异步地将测试结果数据发送至外部系统,如数据库、消息队列或时间序列数据库等,以便于长期存储、实时分析和可视化展示。

后端监听器的作用

  1. 数据异步传输:与标准监听器不同,后端监听器采用异步方式收集测试结果,减少了测试执行过程中的延迟,提高了测试效率。
  2. 扩展数据处理能力:通过将数据推送至后端系统,可以利用更强大的数据处理能力进行实时分析和长期存储。
  3. 集成与分析:便于与大数据分析平台、监控系统(如Grafana、Kibana)集成,实现测试结果的实时监控和报警。
  4. 分布式测试支持:在分布式测试环境中,后端监听器能有效收集所有节点的数据,集中管理测试结果。

配置与使用

  1. 添加后端监听器:在JMeter的测试计划中,右键点击“线程组”或“测试计划”,选择“添加” -> “监听器” -> “后端监听器”。
  2. 选择后端客户端:后端监听器需要一个实现BackendListenerClient接口的客户端来处理数据发送逻辑。常见的客户端有InfluxDB、Graphite、Elasticsearch等,根据需求选择合适的客户端并安装相应的插件。
  3. 配置参数:
    ○ 名称:为监听器命名,便于识别。
    ○ 后端监听器实现:选择具体的后端客户端实现。
  4. 日志与错误处理:确保配置正确的日志级别,以便于调试和问题追踪。后端监听器应能妥善处理网络故障、连接超时等问题,避免影响测试的正常运行。

最佳实践

● 性能考量:选择合适的后端存储和处理系统,确保它们能应对高并发数据写入,不影响测试数据的完整性。
● 资源监控:在进行大规模测试时,监控后端系统的资源使用情况,防止数据丢失或处理延迟。
● 测试计划同步:在分布式测试环境下,确保所有JMeter实例的后端监听器配置一致。
● 安全性:加密传输数据,特别是在公网上传输敏感信息时,确保数据的安全性。

应用实例

首先我们使用SpringBoot框架编写一段测试代码接口

//html
@GetMapping(value = "/html",produces = "application/html")public String Returnhtml() {return "<!DOCTYPE html>\n" +"<html lang=\"en\">\n" +"<head>\n" +"    <meta charset=\"UTF-8\">\n" +"    <title>简单表单提交界面</title>\n" +"</head>\n" +"<body>\n" +"    <h1>欢迎来到我们的简易表单</h1>\n" +"    <form action=\"/submit_form\" method=\"post\">\n" +"        <label for=\"name\">姓名:</label>\n" +"        <input type=\"text\" id=\"name\" name=\"name\"><br><br>\n" +"        <label for=\"email\">电子邮件:</label>\n" +"        <input type=\"email\" id=\"email\" name=\"email\"><br><br>\n" +"        <label for=\"message\">消息:</label>\n" +"        <textarea id=\"message\" name=\"message\"></textarea><br><br>\n" +"        <input type=\"submit\" value=\"提交\">\n" +"    </form>\n" +"</body>\n" +"</html>";}

我们编写如下脚本:
在这里插入图片描述
线程组:保持默认
HTTP信息头管理器:名称设置为accept,值为application/html
HTTP请求:协议设置为http,服务器名称或IP设置为127.0.0.1,端口设置为8091,方法设置为GET,路径设置为/html,内容编码为utf-8
这里要着重说明下,我们使用的JMeter是5.1.1作为测试版本,所以我们配套的influxdb数据库为InfluxDB shell version: 1.8.4
后端监听器:
● 后端监听器:选择influxdb
● influxdbMetricsSender:设置org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
● influxdbUrl:选择http://XX.XXX.XXX.XXX:8086/write?db=jmeter,上述db为数据库名称
● application:设置为test
● measurement:设置为jmeter,这里可以理解为jmeter写入的influxdb表
● summaryOnly:根据实际情况填写,当前保持默认
● samplersRegex:保持默认
● percentiles:保持默认
● testTitle:根据实际情况设置,保持默认为Test name
● eventTags:根据实际情况设置,当前保持默认
运行脚本后,我们登录对应的服务器上查看influxdb上是否真的写入数据库
第一步:登录influxdb
[root@localhost ~]# influx
Connected to http://localhost:8086 version 1.8.4
InfluxDB shell version: 1.8.4
第二步:查看当前数据库实例,找到自己要的实例

> show DATABASES
name: databases
name
----
_internal
prometheus
jmeter
losscount

第三步:进入数据库实例

> use jmeter
Using database jmeter

第四步:查看当前实例下的数据库表

> SHOW MEASUREMENTS
name: measurements
name
----
events
jmeter

第五步:查看表下的数据内容

> select * from jmeter order by time desc limit 5
name: jmeter
time                application  avg  count countError endedT hit max  maxAT meanAT min  minAT pct90.0 pct95.0 pct99.0 rb  responseCode responseMessage sb  startedT statut transaction
----                -----------  ---  ----- ---------- ------ --- ---  ----- ------ ---  ----- ------- ------- ------- --  ------------ --------------- --  -------- ------ -----------
1721801588352000000 test         1022 1     0                 1   1022              1022       1022    1022    1022    782                              154          all    all
1721801588352000000 test                               1               1     1           1                                                                  1               internal
1721801586885000000 test                               1               0     0           0                                                                  1               internal

总结

JMeter的后端监听器为性能测试提供了强大的数据收集和分析能力,是进行大规模、复杂测试不可或缺的工具。通过合理的配置和使用,可以有效地管理和优化应用的性能测试流程,为软件的性能优化和监控提供坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1487777.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

绕过token降低与对方服务器交互时延,如何实现??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

[C++] string管理:深浅拷贝写时拷贝

文章目录 拷贝问题的引入问题代码string类的构造函数String 类的析构函数测试入口函数&#xff08;问题&#xff09;详细分析 浅拷贝深拷贝传统版与现代版的String类传统String类现代版String类 写时拷贝先构造的对象后析构的影响写时拷贝举例及测试样例代码举例测试用例 拷贝问…

浅谈Llama3.1,从结构、训练过程、影响到数据合成

Llama3.1系列模型的开源&#xff0c;真让大模型格局大震&#xff0c;指标上堪比最好的闭源模型比如GPT 4o和Claude3.5&#xff0c;让开源追赶闭源成为现实。 这里给大家分享一篇俊林兄&#xff08;知乎张俊林&#xff09;的一篇解读&#xff0c;主要对LLaMA3.1的模型结构、训练…

1.1 操作系统的基本概念

文章目录 操作系统的概念(定义)操作系统的目标和功能操作系统作为计算机系统资源的管理者操作系统向上层提供方便易用的服务命令接口程序接口 操作系统作为最接近硬件的层次 操作系统的特征&#xff08;4个&#xff09;并发共享互斥共享方式同时共享方式 虚拟虚拟处理器&#x…

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(二)

上一篇只是简单演示了’下一张’的操作和整体的设计思路,这两天把剩余功能补全了,代码经过精简,可封装当成轮播组件使用,详细如下. 代码 <template><div class"container"><button click"checkNext(last)">上一张</button><b…

Vue Router基础

Router 的作用是在单页应用&#xff08;SPA&#xff09;中将浏览器的URL和用户看到的内容绑定起来。当用户在浏览不同页面时&#xff0c;URL会随之更新&#xff0c;但页面不需要从服务器重新加载。 1 Router 基础 RouterView RouterView 用于渲染当前URL路径对应的路由组件。…

Linux--Socket编程预备

目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…

边缘计算网关项目(含上报进程、32Modbus采集进程、设备搜索响应进程源码)

目录 边缘层 架构说明 包含知识点 数据上报进程 功能描述 功能开发 上报线程 数据存储线程 指令处理线程 项目源码 上报模块.c代码&#xff1a; 上报模块Makefile代码&#xff1a; STM32采集模块.c代码 设备搜索响应模块Linux部分.c代码 设备搜索响应模块Qt端代码.h …

流量录制与回放:jvm-sandbox-repeater工具详解

在软件开发和测试过程中&#xff0c;流量录制与回放是一个非常重要的环节&#xff0c;它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater&#xff0c;以及如何利用它来提高软件测试的效率和质量。 …

《Cross-Modal Dynamic Transfer Learning for Multimodal Emotion Recognition》

Multi-modal系列论文研读目录 文章目录 Multi-modal系列论文研读目录1.ABSTRACT2.INDEX TERMS3.INTRODUCTION4.RELATED WORKSA. MULTIMODAL EMOTION RECOGNITION 多模态情感识别1) CONVENTIONAL FUSION METHODS 常规融合方法2) TRANSFORMER-BASED FUSION METHODS 基于变压器的融…

C#测试控制台程序调用Quartz.NET的基本用法

Quartz.Net是常用的任务调用框架之一&#xff0c;既能在客户端程序中使用&#xff0c;也支持在网页程序后台调用。本文结合参考文献4中的示例代码学习其在控制台程序中的基本用法。   VS2022新建控制台项目&#xff0c;在Nuget包管理器中搜索并安装Quartz包&#xff0c;如下所…

IDEA在编译的时候报Error: java: 找不到符号符号: 变量 log lombok失效问题

错误描述 idea因为lombok的报错: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy8Lombok supports: sun/apple javac 1.6, ECJ 原因&#xff1a;这是由于Lombok的版本过低的…

若依 ruoyi poi Excel合并行的导入

本文仅针对文字相关的合并做了处理 &#xff0c;图片合并及保存需要另做处理&#xff01;&#xff01; 目标&#xff1a;Excel合并行内容的导入 结果&#xff1a; 1. ExcelUtil.java 类&#xff0c;新增方法&#xff1a;判断是否是合并行 /*** 新增 合并行相关代码&#xff1a;…

matlab 绘制参数方程

matlab 绘制参数方程 绘制参数方程绘制结果 绘制参数方程 clc; clear; close all;axis_length 100;% 定义参数t的范围 t 0:0.01:100;% 计算x和y的值 x t.^2 1; y 4*t - t.^2;% 绘制函数图像 plot(x, y); xlabel(x); ylabel(y); title(Plot of the curve xt^21, y4t-t^2…

Uprecise软件的基本功能

UPrecise 是和芯星通独立开发的评估软件&#xff0c; 旨在帮助用户便捷地对公司产品进行可视化操作。 用户可通过该软件以串口或端口的方式与接收机进行交互并直观地查看其状态信息&#xff0c;连接后 UPrecise 将自动识别接收机的波特率和类型&#xff0c;动态显示该类型接收机…

Python3网络爬虫开发实战(2)爬虫基础库

文章目录 一、urllib1. urlparse 实现 URL 的识别和分段2. urlunparse 用于构造 URL3. urljoin 用于两个链接的拼接4. urlencode 将 params 字典序列化为 params 字符串5. parse_qs 和 parse_qsl 用于将 params 字符串反序列化为 params 字典或列表6. quote 和 unquote 对 URL的…

FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前文章分享FastAPI&#xff08;七十二&#xff09;实战开发《在线课程学习系统》接口开发-- 留言列表开发&#xff0c;这次我们分享如何回复留言 按…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

Linux:传输层(1) -- UDP协议

1. 端口号 同一台主机的不同端口号(Port)标记了主机上不同的进程&#xff0c;如下图所示&#xff1a; 在 TCP/IP 协议中 , 用 " 源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信 ( 可…

QT开发(QT的基本概述和环境的安装)

QT的概述 一.QT的介绍背景1.1 什么是QT1.2QT的发展史1.3 Qt支持的平台1.4QT版本1.5QT的优点1.6QT的应用场景 二.搭建QT开发环境2.1 QT的开发工具的下载2.2 QT环境变量配置 三.QT的三种基类四.QT Hello World程序4.1使用按钮实现4.1.1 代码方式实现4.1.2 可视化操作实现 一.QT的…