【流量回放探索】啄木鸟流量回放平台

news2024/12/23 10:44:09

啄木鸟流量回放平台

项目简介

  • 本项目是基于RuoYi-Vue单应用版本
  • 流量回放引擎基于goreplay
  • 演示系统基于newbee-mall-api-go

如果你想从录制开始体验,需要搭建演示系统newbee-mall-api-go
,同时需要将gor 部署在演示系统服务中,搭建kafka以便收集流量(你需要在项目中将KafkaConsumer 这个类的自动注入注释解除)
相关文档准备中…

如果你想直接体验平台流程,直接部署本 前后端分离项目即可,相关文档准备中…

流程介绍

录制流量

首先创建一个基准版本的流量数据:

  1. gor录制流量并发送kafka消息
  2. 平台通过消费kafka提取对应的字段
  3. 平台通过指定时间段对录制流量添加对应的版本号,用于后续diff不同版本的接口出参
  4. 平台回放录制的流量,并将对应的接口出参结果保存起来(因为gor对出参没有办法100%录制,只能通过平台请求对应接口后再保存)

在这里插入图片描述

回放流量

当系统版本迭代时,需要回归原有接口

  1. 平台通过复制原版本流量,生成新的版本流量(这里复制的数据仅仅只有接口入参)
  2. 平台回放新的版本流量,保存对应的出参结果
  3. 平台通过唯一的gorid(录制时产生的),进行diff操作(diff操作需要降噪)
  4. 平台只存储diff存在异常的结果,相同的结果无需存储
    在这里插入图片描述

diff结果

这里的前端页面还没有实现,diff 高亮显示 json指定的key(寻求大佬帮助 )

没有降噪字段的传参
在这里插入图片描述

降噪字段传参
在这里插入图片描述

关于系统的设计

回放流量的方式

因为这里是基于电商项目newbee-mall-api-go进行回放流量设计的,用的比较简单的方式,如果不能适配你的系统需要你进行二次开发了(我想这也是为什么测试领域没有大一统的系统平台吧!各自的业务都有一些特性,很难直接套用,这也是为什么这几年测开比较吃香的原因之一吧)
在这里插入图片描述

gor 录制的response丢失问题

gor 官方提供了直接监听response 的方法,但是存在丢失的情况,在issue中有人提出过。我使用的是修复后的版本,依然存在这个问题,所以本项目的response 是自己收集的。
在这里插入图片描述

gor 使用elasticsearch 收集不到数据

我使用的是官方支持es5的版本也收集不到数据,这个问题同样有人提出,纠结了半天,与其等官方修复,不如自己来。这里我用的Mysql 收集数据,后续规划也会做相关升级

在这里插入图片描述

共创

目前项目只有一人在开发,进度比较缓慢(尤其是前端),寻求大佬共同迭代本项目,也期待您的意见https://github.com/dalaohekele/woodpecker

规划

  • jvm-sandbox-repeater 接入
  • mock服务

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

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

相关文章

[附源码]Python计算机毕业设计SSM基于技术的高校学生勤工俭学管理系统的设计与开发(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

HBase

1 HBase存储结构 HMaster 1. 监控 RegionServer   2. 处理 RegionServer 故障转移   3. 处理元数据的变更   4. 处理 region 的分配或移除   5. 在空闲时间进行数据的负载均衡   6. 通过 Zookeeper 发布自己的位置给客户端 RegionServer 1. 负责存储 HBase 的实际数…

编写高质量代码 - 多线程和并发(2)

文章目录1. 使用线程异常处理器提升系统可靠性2. volatile不能保证数据同步3. 异步运算考虑使用Callable接口1. 使用线程异常处理器提升系统可靠性 我们要编写一个Socket应用,监听指定端口,实现数据包的接收和发送逻辑,这在早期系统间进行数据…

分布式计算MapReduce究竟是怎么一回事?

前言 如果要对文件中的内容进行统计,大家觉得怎么做呢?一般的思路都是将不同地方的文件数据读取到内存中,最后集中进行统计。如果数据量少还好,但是面对海量数据、大数据的场景这样真的合适吗?不合适的话,…

1560_AURIX_TC275_NMI Trap以及PMC

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 1. 连同上一次的笔记中最后一页,看得出来NMI的trap软件触发至少是有三种方法。 2. 后半页给出了trap发生的状态的清除操作寄存器。 前面的文字描述部分,几个trap是…

基于jsp+mysql+ssm公共交通失信人员管理系统-计算机毕业设计

项目介绍 本南昌公共交通失信人员管理系统主要包括系统用户管理模块、用户信息管理模块、处罚类型管理、失信人员管理、登录模块、和退出模块等多个模块, 本系统基于SSM(SpringSpringMVCMyBatis)框架,适用于毕业设计,采用javaweb,基于B/S模式,Myeclipse或者eclipse…

手把手教你---猿如意之八大高效利器使用

开篇之前我们可能要来了解一下,《猿如意》是CSDN为提高开发者工作效率,发布客户端和低代码平台产品——《猿如意》;记得第一次在接触猿如意实在今年八月份,之前使用过其他的工具,但是有利有弊,先说下为啥选…

趋势分析 | 零信任实践之关键技术解读

SmartX 趋势分享 SmartX 趋势分享由 SmartX 团队内部分享的权威机构市场报告、全球重要媒体文章精选整理而成。内容涉及现代数据中心相关产业趋势以及金融、医疗、制造等行业全球用户需求与实践前沿洞察。本期,我们分享一篇 Gartner 关于零信任实践策略的文章[1]&am…

[附源码]JAVA毕业设计校园快递联盟系统(系统+LW)

[附源码]JAVA毕业设计校园快递联盟系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

【大数据入门核心技术-Azkaban】(二)Azkaban核心架构

目录 一、核心架构 1、Relational Database(Mysql) 2、Azkaban Web Server 3、Azkaban Executor Server 二、三种运行模式 1、solo server mode 2、two server mode 3、multiple executor mode 一、核心架构 Azkaban架构由三部分构成: 1、Relational Databa…

【chatGPT免注册】openAI机器人直接访问,不需要注册的方法

最近,chat GPT可谓是火出圈了。但是这个服务在国内不可用,网上你能找到的教程无非是注册一个虚拟的手机号去接受短信,可就算你能注册成功,还是无法访问。 还有人说可以去某宝买一个账号,这是可以的,账号的确…

安卓玩机搞机技巧综合资源-----干掉手机广告 禁用 冻结 关闭内置软件【八】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红米…

Java 并发编程(三)之synchronized

带着BAT大厂的面试问题去理解Synchronized 请带着这些问题继续后文,会很大程度上帮助你更好的理解synchronized。 Synchronized可以作用在哪里? 分别通过对象锁和类锁进行举例。Synchronized本质上是通过什么保证线程安全的? 分三个方面回答:加锁和释放…

微信群营销方式微信群建群营销案例

今天我们以小区微信群营销为例,聊一聊具体的步骤和流程: 1、社群的建立,就是如何找到合适的小区,建立小区专属社群?因此,终端在做小区社群营销之前,需要先对当地所有的潜在小区做一个综合性的分析和评估&a…

Github使用

第一步 配置邮箱: ssh-keygen -t rsa -C 283589579qq.com然后一路回车不用管。 如下: 查看生成文件: cd .ssh ls如下: id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。…

【Java开发】 Spring 10 :Spring Boot 自动配置原理及实现

用了这么久的 SpringBoot ,我们再来回顾一下它,本文介绍 Spring Boot 的自动配置,这是它区别于 Spring 的最大的点,本文的自动配置项目包含三个项目,建议拉取仓库里的代码进行实践:尹煜 / AutoConfigDemo …

kafka之ranger插件的一个坑

之前文章写过kafka的鉴权,以及集成ranger插件的配置使用。但真正在用起来后,发现里面有个坑,本文就来聊聊这个坑的情况以及排查过程。【问题现象】kafka在集成了ranger插件实现鉴权功能后,发现过一段时间后,controller…

Gaussian 计算静电云图确定吸附位点

计算背景: 利用高分子有机物等活性材料对有毒分子、原子、离子在真空、水溶液、有机溶液等环境下吸附,已是当今环境科学、矿物学、土壤化学等学科领域研究的热点。但如何确定最佳吸附位点以计算其吸附能就显得尤为重要。 现阶段多数物质的吸附均依据粒…

Eureka自我保护模式和InstanceID的配置

本节我们主要介绍 Eureka 自我保护模式的开启和关闭和自定义 Eureka 的 InstanceID 的配置。 关闭自我保护 保护模式主要在一组客户端和 Eureka Server 之间存在网络分区场景时使用。一旦进入保护模式,Eureka Server 将会尝试保护其服务的注册表中的信息&#xff…

PMP内容1

PMP目录概述需求:设计思路实现思路分析1.2.确认范围3.控制范围4.进度管理5.规划进度管理成本管理估算成本参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a bette…