使用真实流量请求进行系统测试

GoReplay是一款用于捕获和回放HTTP请求的工具,适用于测试环境。它能够收集线上环境的真实请求并重放,帮助验证系统行为。支持实时转发、录制回放、请求过滤及回放速度调整等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对测试环境进行测试时,如果能使用线上环境真实的请求进行测试的话,是不是更好些

GoReplay 就可以用来捕获真实的HTTP请求,并进行回放

在线上环境中使用 GoReplay 来收集请求,可以实时转给测试环境,也可以保存为文件,然后拿到测试环境进行回放

GoReplay 在进行请求回放时,会模拟真实情况,例如 request1 和 request2 间隔了 3 秒,回放时,也会保留这3秒的间隔,可以准确呈现访问的负载状况

GoReplay 收集请求时,可以进行过滤,只收集自己关心的请求

回放时,还可以调整速度,例如想以真实环境下的2倍速度进行压力测试,设置一下回放速率即可

使用示例

 

  • 实时转发

 

例如 8000 端口运行的是线上系统,8001 端口运行的是测试系统

./gor --input-raw :8000 --output-http="http://localhost:8001"

把 8000 端口的请求都输出到后面的地址


执行后就监听并转发,直到退出

 

  • 录制回放

 

录制

./gor --input-raw :8000 --output-file=requests.gor

--output-file 参数指定了保存到哪个文件



执行后,就开始监听记录,直到退出

退出后,在当前目录下生成了一个 requests_0.gor 文件

回放

./gor --input-file requests_0.gor --output-http="http://localhost:8001"

--input-file 指定要回放哪个文件,后面跟上文件名

--output-http 就是要把请求发送到什么地址

 

  • 请求过滤

 

例如只收集 /api 下的请求

./gor --input-raw :8080 --output-http staging.com --http-allow-url /api

例如只收集请求头中符合 api-version 为 1.0x 的请求

./gor --input-raw :8080 --output-http staging.com --http-allow-header api-version:^1\.0\d

 

  • 回放速度调整

 

例如使用2倍速度进行回放

./gor --input-file "requests.gor|200%" --output-http "staging.com"

安装测试

下载地址

https://github.com/buger/gor/releases

下载并解压 gor_v0.15.1_x64.tar.gz 后,是一个 gor 可执行文件,就可以直接用了

为了便于马上实验,GoReplay 提供了一个简单的 web server

./gor file-server :8000

在浏览器中访问 http://localhost:8000 可以列出本地文件列表

使用这个server和不同的端口,就模拟出了不同的环境,方便实践 GoReplay 的用法

官网 https://goreplay.org ,有详细的使用文档

转载于:https://www.cnblogs.com/jackyroc/p/7686430.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值