关于“流量回放”的一些调研
使用流量回放的背景:
而随着业务增长,每次发布需要覆盖的Case越来越多,这时对所有Case都进行回归显然不太现实,人工测试也往往不能完全避免出现问题。
《携程流量回放平台实践》:https://www.infoq.cn/article/sbq4qabo851rdzbugrlw
《写成QA-流量回放系统揭秘》:https://cloud.tencent.com/developer/article/1157118
思路:流量放到测试环境回放,回放后分析系统存在的问题。包括了:接口自动化和UI自动化。流量来源:生产ElasticSearch中的日志。
【应用的场景】&【问题】:
1.测试环境回归测试——问题:1.环境要求,一些状态不对导致的报错或者异常如何区分 2.没有生产数据权限如何处理
2.生产环境发布后线上回归测试:1.对于修改部分的异常如何识别和区分
3.压测,好处:更贴近真实流量,可直接使用生产海量的真实场景作为测试case,解决压力源的问题
【总体优点】:既有效保存了原集群流量无修改无损耗,又解决了人工构造的测试数据不能拟合生产真实场景的问题
非常适合没有逻辑改动的,云迁移,纯技术重构下的测试(测试范围难以判断准确,测试工作量巨大的情景)
【总体问题】:1.压测方面不适用于生产压力不大的企业信息化系统,不适用于生产数据敏感系统
2.生产环境做操作的话需要有荣在恢复的基础设施做支撑
3.底层数据依赖的问题再业务数据链路长,业务场景复杂的情况下较难解决
4.系统时间是否会影响结果
《轻量级流量复制实践》:https://cloud.tencent.com/developer/article/1549540
个人实践推荐工具:goreplay工具
其他流量回放工具:TcpCopy,Nginx,sandbox-repeter(阿里今年开源)
《流量回放在RPC实战中的应用》:https://time.geekbang.org/column/article/221604
如果你经常翻阅一些技术文章的话,可能你会不止一次看到过“流量回放”这个词。我简单地介绍一下,所谓的流量就是某个时间段内的所有请求,我们通过某种手段把发送到 A 应用的所有请求录制下来,然后把这些请求统一转发到 B 应用,让 B 应用接收到的请求参数跟 A 应用保持一致,从而实现 A 接收到的请求在 B 应用里面重新请求了一遍。整个过程我们称之为“流量回放”。
酷家乐的流量回放实践:
酷家乐流量回放实践(二):https://testerhome.com/topics/25416
《流量回放在系统重构中的测试实践》:https://www.codercto.com/a/80944.html