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 'https://192.168.0.100:8080'
2.HTTP流量復制頻率控制
將本機上80端口的流量復制到192.168.0.100的8080端口,每秒請求不超過10個
goreplay –input-tcp :80 –output-http "https://192.168.0.100:8080|10"
將本機上80端口的流量復制到192.168.0.100的8080端口,每秒請求不超過總數的10%
goreplay –input-raw :80 –output-http "https://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 'https://192.168.0.100:8080'
5.過濾指定url,進行HTTP流量復制
goreplay –input-raw :80 –output-http 'https://192.168.0.100:8080' –http-original-host –output-http-url-regexp test
6.過濾請求頭,進行HTTP流量復制
goreplay –input-raw :80 –output-http 'https://192.168.0.100:8080' –http-allow-header api-version:^1.0d
7.過濾http方法,進行HTTP流量復制
goreplay –input-raw :80 –output-http "https://192.168.0.100:8080" –http-allow-method GET –http-allow-method OPTIONS
8.將HTTP流量進行url重寫后再復制
goreplay –input-raw :80 –output-http 'https://192.168.0.100:8080' –http-rewrite-url /v1/user/([^\/]+)/ping:/v2/user/$1/ping