生产环境流量录制并回放,这些录制的流量要如何清洗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
LoremIpSum
V2EX    程序员

生产环境流量录制并回放,这些录制的流量要如何清洗

  •  
  •   LoremIpSum 2022-08-23 20:48:14 +08:00 3153 次点击
    这是一个创建于 1144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究流量录制的相关内容

    根据定义:

    流量录制回放是通过复制线上真实流量(录制)然后在测试环境进行模拟请求(回放)验证代码逻辑正确性。通过采集线上流量在测试环境回放逐一对比每个子调用差异和入口调用结果来发现接口代码是否存在问题。 

    痛点:

    生产和测试环境的代码时一致的,也就是服务提供的功能是一致的,但是生产和测试环境的数据是不一致的,比如我录制了某一个接口的流量在某个时间段的流量,这个接口的 url 为{userid}/orders,线上和测试环境的 userid 必然不是对称的,那么这个时候怎么在测试环境回放这些录制的数据?怎么满足定义中所说的

    在测试环境进行模拟请求(回放)验证代码逻辑正确性

    userid 如果不存在,接口会返回 404 ,测不出任何效果。 那么为了能测出效果,这种情况下我们只能进行数据清洗,把录制的数据里面的 userid 改了,让这个 userid 是在测试环境有意义的。

    但是如果每一个被录制的接口都要考虑清洗的场景,那么这个录制工作会变得及其复杂,生产环境的接口成千上万,而且每个接口要清洗的字段,内容也不一样。

    问题:

    关于这块流量录制并在测试环境回放究竟有没有什么比较可行的方法论

    8 条回复    2022-08-24 14:59:59 +08:00
    noobCoderZzz
        1
    noobCoderZzz  
       2022-08-23 21:16:59 +08:00
    能不能把线上的数据脱敏同步到测试环境,当然这个 userid 也做同样的映射处理
    zzuieliyaoli
        2
    zzuieliyaoli  
       2022-08-23 21:18:37 +08:00
    加个预生产 /预发布环境?这样 userId 就一致了
    taowen
        3
    taowen  
       2022-08-23 23:02:32 +08:00
    把这些接口的流量也录制并回放了。https://github.com/taowen/awesome-debugger 还有很多流量录制和回放的开源工具
    iyaozhen
        4
    iyaozhen  
       2022-08-23 23:10:17 +08:00
    最近看见的文章 拨开流量录制回放从基建到业务落地的迷雾
    https://www.sohu.com/a/578317129_355140

    其实楼主说到才是流量回放的难点,还有数据安全的问题。好像没啥好的办法,就是要配套系统来配置每个字段的清洗 /映射规则
    LoremIpSum
        5
    LoremIpSum  
    OP
       2022-08-23 23:39:20 +08:00
    @noobCoderZzz 不是没想过,但是线上的数据量太大了,同步的成本很高
    vaas
        6
    vaas  
       2022-08-24 02:04:21 +08:00
    /div>
    我们公司内部也有流量回放工具,做法是把所有的外部调用(包括 RPC ,DB ,配置中心等等)全部都录下来。
    lazyfighter
        7
    lazyfighter  
       2022-08-24 09:19:39 +08:00
    预发环境针对流量进行读流量回访,但是这种情况还是会有问题,比如订单状态变更导致很多流量都 diff 失败了, 这个需要进行特殊处理, 写流量我们之前是通过人工 diff 的,在重构的时候提供两套接口,线上之前的接口正常返回,拿到线上接口的 request response 以及下游依赖的 response 之后,异步请求新的接口传入这些参数,下游依赖 response 进行 mock ,下游 request 进行 jsondiff ,重构接口 response 进行 jsondiff ,依靠这种方法做过好几个项目的重构
    LoremIpSum
        8
    LoremIpSum  
    OP
       2022-08-24 14:59:59 +08:00
    @lazyfighter 你们进行回归测试的数据和线上的数据是一致的吗?你们是否也需要对录制的流量进行清洗后再回归?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6051 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:20 PVG 11:20 LAX 20:20 JFK 23:20
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86