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 执行它 。

  • 相关阅读:
    【洛谷 1546】最短网络
    [Algorithms]Greedy
    [Operating System]Thread Pool
    微积分——外微分形式的微积分
    Codeforce Round #548(Div2)
    Codeforce Round #544(Div3)
    Codeforce Round #545(Div2) (BCD题解)
    桶排序桶的前缀和/差分
    Codeforce Round #545(Div2)
    Codeforce Round #531(Div3)
  • 原文地址:https://www.cnblogs.com/spillage/p/15016283.html
Copyright © 2011-2022 走看看