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

啄木鸟流量回放平台

项目简介

如果你想从录制开始体验,需要搭建演示系统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服务
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值