当前位置: 首页 > 工具软件 > Gor > 使用案例 >

Gor复制生产环境流量到测试环境

海信鸥
2023-12-01

一、Gor简介

Gor 是一款go语言实现的简单的http流量复制工具,它的主要目的是使你的生产环境HTTP真实流量在测试环境和预发布环境重现。只需要在 LB 或者 Varnish 入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方,完美解决了 HTTP 层实时流量复制和压力测试的问题。对比在Nginx通过编写lua脚本进行流量拷贝要更加简单便捷,下载解压后就可马上使用。

二、Gor安装

安装包下载地址:https://github.com/buger/goreplay/releases

下载完成后,将解压后的goreplay文件复制到/usr/bin下,就可以开始使用了

三、使用方法

1.基础HTTP流量复制

将本机上80端口的流量全部复制到192.168.0.100的8080端口

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080'

2.HTTP流量复制频率控制

将本机上80端口的流量复制到192.168.0.100的8080端口,每秒请求不超过10个

goreplay --input-tcp :80 --output-http "http://192.168.0.100:8080|10"

将本机上80端口的流量复制到192.168.0.100的8080端口,每秒请求不超过总数的10%

goreplay --input-raw :80 --output-http "http://192.168.0.100:8080|10%"

3.HTTP流量复制输出到文件

goreplay --input-raw :80 --output-file requests.log

4.通过HTTP流量回放进行压力测试

goreplay --input-file 'request.gor|200%' --output-http 'http://192.168.0.100:8080'

5.过滤指定url,进行HTTP流量复制

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-original-host --output-http-url-regexp test

6.过滤请求头,进行HTTP流量复制

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-allow-header api-version:^1\.0\d

7.过滤http方法,进行HTTP流量复制

goreplay --input-raw :80 --output-http "http://192.168.0.100:8080" --http-allow-method GET --http-allow-method OPTIONS

8.将HTTP流量进行url重写后再复制

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-rewrite-url /v1/user/([^\\/]+)/ping:/v2/user/$1/ping

 

 类似资料: