本贴最后更新于 910 天前,其中的信息可能已经时移俗易
内容有过重大修订,请浏览修改历史以获取更新全貌

基本介绍

Gor 是一款 go 语言实现的简单的 http 流量复制工具,它的主要目的是使你的生产环境 HTTP 真实流量在开发环境和语言预演环境(staging  server)重现,可以使你的生产环境 HTTP 真实流量在开发环境和语言预演环境(staging  server)重现。

工具使用非常简单,只需要下载一个 gor 文件即可,并同时支持 linux、mac、windows 版本。下面是它的工作的流程,监听服务器捕捉 http 流量,把捕捉到的流量发送到重现服务器上或者保存到文件中,重现服务器再继续把流量发送到一个指定的 ip 地址。

image not found

用法简介

简单的 HTTP 流量复制:

gor –input-raw :80 –output-http “http://staging.com”

HTTP 流量复制频率控制:

gor –input-tcp :28020 –output-http “http://staging.com|10″

HTTP 流量复制缩小:

gor –input-raw :80 –output-tcp “replay.local:28020|10%”

HTTP 流量记录到本地文件:

gor –input-raw :80 –output-file requests.gor

HTTP 流量回放和压测:

gor –input-file “requests.gor|200%” –output-http “staging.com”

HTTP 流量过滤复制:

gor –input-raw :8080 –output-http staging.com –output-http-url-regexp ^www.

注入改变请求流量 header

gor --input-raw :80 --output-http "http://staging.server"  --output-http-header "User-Agent: Replayed by Gor"   --output-http-header "Enable-Feature-X: true"

可以通过 gor --help 查看更多用法

相关链接

官方网站

http://leonsbox.com/blog/2013/06/04/improving-testing-by-using-real-traffic-from-production/

下载地址

https://pan.baidu.com/s/1jInUaCe

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

开源地址

https://github.com/buger/gor

其他资源

https://github.com/doubaokun/node-ab
https://github.com/session-replay-tools/tcpcopy
https://github.com/httperf/httperf
https://github.com/buger/gor/blob/master/ELASTICSEARCH.md

 

  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    227 引用 • 988 回帖 • 780 关注
  • 流量
    5 引用 • 75 回帖 • 1 关注
  • 复制
    3 引用 • 5 回帖
感谢    关注    收藏    赞同    反对    举报    分享