zoukankan      html  css  js  c++  java
  • 流量回放的学习记录一

        首先,文章涉及到 JMETER 的部分参考了 https://blog.csdn.net/weixin_40686603/article/details/114589428  这是原文链接,作者是我的同事,为同事打个广告。

        那么我们开始进入正文。

        JMeter 是应用最广泛的测试工具没有之一,即便是各个开源的平台,很大程度也是以 JMeter 作为 executor 来实现这种功能的,开源的 JMeter 源码需要阅读,因为计划要做流量回放平台,流量的录制基于 APISIX,所以我来做流量回放的部分。

        流量回放,顾名思义,就是把生产上的流量录制下来,在任意地方回放,关于为什么做流量回放很多文章已经说得非常清楚了,此处不再赘述。

        当前总结出流量回放平台比较出名的平台有滴滴的 sharingan(很重要,最后的设计思路也是参考了 sharingan),aliyun的 doom,去哪儿的 ARES,文章比较多的工具是 go-replay,tcpplay 等。为什么不直接使用工具回放,而是调研平台,有几个原因:

       一,公司正在通过统一框架,将公司内的业务服务生态统一起来,自己开发的好处是定制程度高,可以随时修改;

       二,人员成本可控.

       基于这两点原因,参考了 sharingan 来实现我们自己的流量回放平台。不直接使用 sharingan 的理由是,我们公司是 java 技术栈,而 sharingan 是基于 go 开发的,有定制版 GOROOT,故放弃了。

       所以,流量回放平台如何设计?

       

        重画了一次设计图,避开了其他一些生态相关的事情。

        所以我们的重点是,如何在代码层面实现流量回放?也就是根据日志,重新构造http请求再发出去。因为当前的平台 executor 使用的是 jmeter,所以我们要学习如何在代码层面构造 jmeter的 测试计划。

        HashTree 是 JMeter 脚本的数据接口,所有通过 GUI 构造出来的 JMX 脚本最终被解析接 HashTree 上的一个个节点来顺序执行。

        这是哈希树的介绍 https://zh.wikipedia.org/zh-hans/%E5%93%88%E5%B8%8C%E6%A0%91

        所有的 JMeter 的组件,都被视为哈希树的一个节点,我们要做的事情是把流量及其他操作,配置好以后,插入 hashtree,并调用 jmeter engine 执行它 。

  • 相关阅读:
    C#创建自定义配置节
    linux下安装nginx
    linux查看防火墙状态和对外开放的端口状态
    js 获取二级域名
    .net core 获取本地ip及request请求端口
    《趣谈 Linux 操作系统》学习笔记(二):对 Linux 操作系统的理解
    《趣谈 Linux 操作系统》学习笔记(一):为什么要学 Linux 及学习路径
    Redis Cluster集群
    Redis的主从复制与Redis Sentinel哨兵机制
    Redis持久化方案
  • 原文地址:https://www.cnblogs.com/spillage/p/15016283.html
Copyright © 2011-2022 走看看