流量回放测试是什么意思(软件流量回放测试是什么)

流量回放测试是什么意思(软件流量回放测试是什么)p 在性能测试中 有同学问起 GoReplay 这个监控工具 今天就给大家准备这方面的笔记 先收藏 再点赞 接着咱们一起看 p GoReplay 是一个开源的网络监控工具 它可以记录你的实时流量 并用于跟踪 负载测试 监控和详细分析

大家好,我是讯享网,很高兴认识大家。



 <p>在性能测试中&#xff0c;有同学问起GoReplay 这个监控工具。今天就给大家准备这方面的笔记。先收藏&#xff0c;再点赞&#xff0c;接着咱们一起看。</p> 

讯享网

GoReplay是一个开源的网络监控工具,它可以记录你的实时流量,并用于跟踪、负载测试、监控和详细分析。GoReplay提供了一种unique approach for shadowing方式:GoReplay不是以代理形式,而是监听网络接口上的流量,不需要对生产基础设施进行任何更改,而是在与服务相同的机器上运行GoReplay守护进程。


讯享网

首先安装Golang及相关依赖环境

讯享网

安装GoReplay

 

讯享网 参数解释  –input-raw :用来捕捉http流量,需要指定ip地址和端口  –input-file :接收流量  –output-file:保存流量的文件  –input-tcp:将多个Goreplay实例获取的流量聚集到一个Goreplay实例  –output-stdout:终端输出  –output-tcp:将获取的流量转移至另外的Goreplay实例  –output-http:流量释放的对象server,需要指定IP地址和端口  –output-file:录制流量时指定的存储文件  –http-disallow-url :不允许正则匹配的URL  –http-allow-header :允许的Header头  –http-disallow-header:不允许的Header头  –http-allow-method:允许的请求方法,传入值为GET,POST,OPTIONS等  –input-file-loop:无限循环,而不是读完这个文件就停止了  –output-http-workers:并发请求数  –stats –out-http-stats 每5秒输出一次TPS数据(查看统计信息)  –split-output true: 按照轮训方式分割流量  –output-http-timeout 30s:http超时30秒时间设置,默认是5秒

命令行使用

捕捉流量并通过终端输出

 https://blog.csdn.net/SQtester/article/details/gor –input-raw :8083 –output-stdout

上述命令将监控8083端口上所有的流量,并通过终端stdout输出。你可以通过浏览器或者curl访问8083端口,然后在终端查看gor输出所有的http请求。

捕捉流量并实时同步到另一台机器

讯享网 https://blog.csdn.net/SQtester/article/details/gor –input-raw :8000 –output-http=“http://example:8001"

上述命令将8000端口的流量实时同步访问http://example:8001服务器,你在访问第一台服务器时,将看到流量以相同的顺序请求到第二台。

将捕捉流量保存到文件中,然后释放到其他机器

  1. 首先通过–output-file 保存流量(有时候实时同步流量是很难做到的, 所以Goreplay提供了这种先保存后释放的模式:)
 https://blog.csdn.net/SQtester/article/details/gor –input-raw :8000 –output-file = requests.gor

上述命令将8000端口的流量,保存到requests.gor文件中(必须是.gor后缀,其它后缀经测释放时有问题)。

2.释放保存的流量

讯享网 https://blog.csdn.net/SQtester/article/details/gor –input-file requests.gor –output-http = ”http://另个服务器ip:8001“

上述命令将释放所有保存在requests.gor中的请求通过相同的时间顺序释放到服务器http://另个服务器ip:8001。

Goreplay的限速机制和请求过滤

限速机制

由于生产服务器配置一般远高于测试服务器配置,所以直接将生产服务器全部流量同步到测试服务器是不可行的,Goreplay提供了两种策略:

  1. 限制每秒的请求数
 https://blog.csdn.net/SQtester/article/details/gor  –input-tcp :28020 –output-http ”http://staging.com|10"# (每秒请求数限制10个以内)  https://blog.csdn.net/SQtester/article/details/gor  –input-raw :80 –output-tcp “replay.local:28020|10%”  # (每秒请求数限制10%以内)

2.基于Header或URL的参数限制一些请求,为指定的Header或者URL的请求设定限制的百分比

讯享网https://blog.csdn.net/SQtester/article/details/gor –input-raw :80 –output-tcp “replay.local:28020|10%” –http-header-limiter “X-API-KEY: 10%” https://blog.csdn.net/SQtester/article/details/gor –input-raw :80 –output-tcp “replay.local:28020|10%” –http-param-limiter “api_key: 10%”

请求过滤

当需要捕捉指定路径的请求流量时,可以使用该机制,如只同步/api路径下的请求

https://blog.csdn.net/SQtester/article/details/gor –input-raw :8080 –output-http staging.com –http-allow-url /api

性能测试

性能测试,可以不考虑请求的顺序和速率,并且要求无限循环

讯享网https://blog.csdn.net/SQtester/article/details/gor –input-file ‘request.gor|10000%’ –input-file-loop –output-http ‘http://host2.com' –output-http-workers 100 –stats –output-http-stats 

–input-file 从文件中获取请求数据,重放的时候 100x 倍速

–input-file-loop 无限循环,而不是读完这个文件就停止

–output-http 发送请求到 http://host2.com

–output-http-workers 并发 100 发请求

–stats –output-http-stats 每 5 秒输出一次 TPS 数据

表示放大2倍速度来回放

https://blog.csdn.net/SQtester/article/details/gor –input-file “requests.gor|200%” –output-http “staging.com”

回放速率不超过10QPS(绝对值)

讯享网https://blog.csdn.net/SQtester/article/details/gor –input-tcp :28020 –output-http “http://staging.com|10"

回放不超过原流量的10%(百分比,这里是总流量的占比)

https://blog.csdn.net/SQtester/article/details/gor –input-raw :8083 –output-tcp ”replay.local:1111|10%“

以上就是关于GoReplay工具的详细操作笔记,有环境的同学可以跟着笔记操练起来。还有更多资料可以领取学习。

小讯
上一篇 2025-04-18 13:58
下一篇 2025-04-25 19:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177679.html