当前位置: 代码迷 >> 综合 >> 在也不用 Mock 数据测试了!直接 COPY 线上流量岂不美哉 !分流神器 — Goreplay 「你值得拥有,炸墙推荐」
  详细解决方案

在也不用 Mock 数据测试了!直接 COPY 线上流量岂不美哉 !分流神器 — Goreplay 「你值得拥有,炸墙推荐」

热度:121   发布时间:2023-09-21 04:31:58.0

文章目录

    • 背景
    • Goreplay 介绍
    • 实操过程
      • 安装
      • 执行
      • 命令解释
    • Q&A
    • 附录

背景

??在模块开发阶段完成后,进入到测试阶段,一般是 QA 同学通过设计各种逻辑场景 CASE 进行测试。但在一些比较核心的模块测试中,尤其是新模块,单单仅靠 QA 人工 CASE 是远远不够的。

在验证系统的正确性和可靠性上,无法全面覆盖生产环境中的所有场景!

??那么如何模拟线上全部场景呢?

最简单的做法就是 Mock 一份和线上一致的请求做测试。

??有些公司通过搭建预览机 或 DEV 环境,上线前做全流量的回归测试处理。那没有这样的环境该如何是好呢?

??下面推荐分享一款强悍的引流工具 —— Goreplay !

Goreplay 介绍

??Goreplay 原名是 Gor ,是一款引流工具,提供了重复使用现有流量进行测试的方法。

??Goreplay 通过监听服务端口进行 http 流量的捕获,进而进行转发或重放。其工作流图如下
在也不用 Mock 数据测试了!直接 COPY 线上流量岂不美哉 !分流神器 — Goreplay 「你值得拥有,炸墙推荐」

??下面我们已简单的实操来介绍具体使用,详细深层介绍见官方文档

实操过程

安装

wget https://github.com/buger/goreplay/releases/download/v0.16.1/gor_0.16.1_x64.tar.gz
tar xvf gor_0.16.1_x64.tar.gz //解压

执行

??进入到 goreplay 目录下,执行命令即可。

sudo /tmp/goreplay --input-raw “:8083” --output-file ~/tmp/file

命令解释

可用输入:

  • –input-raw - 用于捕获HTTP流量,您应该指定IP地址或接口和应用程序端口。有关捕获和重放流量的更多信息。
  • –input-file- 接受之前使用的文件–output-file。更多关于保存和从文件重播
  • –input-tcp - 如果您决定将来自多个转发器Gor实例的流量转发给它,则由Gor聚合实例使用。阅读关于使用Aggregator-forwarder设置。
    可用输出:
  • –output-http - 重放HTTP流量到给定的端点,接受基础URL。阅读[关于它的更多信息](重播HTTP流量)
  • –output-file - 记录传入的流量到文件。更多关于保存和从文件重播
  • –output-tcp- 将传入数据转发给另一个Gor实例,并与其一起使用–input-tcp。阅读关于Aggregator-forwarder设置的更多信息。
  • –output-stdout - 用于调试,输出所有数据到stdout。

Q&A

1、Goreplay 可以进行流量转发吗?转发的话就不需要保存文件了吧!

对,Goreplay 支持直接将流量进行转发至多个 API ,不需要进行文件缓存;文件缓存用于数据需要进一步手动处理时采用

2、Goreplay 可以进行流量过滤吗?测试用本地跑,线上流量太大,机器扛不住!

可以,Goreplay 支持流量限速、流量过滤策略,可以根据实际场景进行调整

3、…

本文只是以常用的实操分享 Goreplay ,更多细节可以参见官方文档

附录

软件生产,沟通成本是最大的!

  相关解决方案