自动化测试之流量回放技术

优点:

  • 原生模块支持,在nginx 1.13.4版本后内置该模块

  • 支持配置多份镜像放大流量

  • 配置比较简单,nginx-server将流量复制到mirror后无交集,达到对真实流量无影响目的

缺点:

  • 修改配置后需要执行“nginx -s reload”命令使变更生效,线上环境不建议这么做

  • 实际业务中经由nginx转发的模块较多,无法筛选指定请求

  • 只支持录制http流量

  • mirror为子请求,当mirror未结束时,主请求的内存无法释放,可导致nginx性能下降甚至阻塞

TcpCopy

项目地址:https://github.com/session-replay-tools/tcpcopy

优点:

  • 使用线上的真实数据

  • 适合高并发场景

  • 对目标服务器基本无干扰

  • 支持复制基于TCP任意层协议的流量

缺点:

  • 由于只做数据包复制未做流量异常鉴别,可能导致异常数据进入目标服务器

  • 无法对应用层的数据进行筛选和修改

  • 可能会丢失数据包导致请求丢失

GoReplay

项目地址:https://github.com/buger/goreplay

优点:

  • 通过字节码增强的方式可以直接录制Java方法、子调用

  • 对业务代码0侵入

  • 模块功能丰富

缺点:

  • 对服务运行环境有一定侵入

  • 在挂载瞬间会占用较多的机器资源,当业务量大时可能会导致服务夯住

  • 当前功能不完善,需要代码开发能力

总结

通过技术方案可以方便我们利用线上真实流量验证压测、自动化、回归等场景,根据自己实际的需求选择合适的工具,但一切以不影响线上服务的稳定可用为前提。也期待后续会有更多的更完善的流量回放方案。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月10日
下一篇 2021年10月10日

相关推荐