終極 Web 應用效能和壓力測試工具 Gor

2021-08-27 21:40:23 字數 1392 閱讀 3044

web 應用壓力測試工具有很多,比如 apache ab,node-ab,apache jmeter, loadrunner, httperf。但是這些工具都沒能解決乙個問題:

如何正確模擬生產環境的流量

如今 web 應用的架構變得非常複雜,內部包含複雜的各種負載均衡、 服務和 rpc 呼叫關係,簡單的傳送 get 請求到某些 url 或者 api 介面完全無法模擬真實的流量。假如回放 http 日誌,操作又異常麻煩。tcpcopy 雖然能夠複製實時流量,但是操作也很複雜。之前的 亞馬遜雲平台的遷移 就用到了 gor 這個工具。

我一直在找乙個簡單又方便的解決方案,直到找到了 gor 。gor 是用 golang 寫的乙個 http 實時流量複製工具。只需要在 lb 或者 varnish 入口伺服器上執行乙個程序,就可以把生產環境的流量複製到任何地方,比如 staging 環境、dev 環境。完美解決了 http 層實時流量複製和壓力測試的問題。

gor 支援流量的放大和縮小、頻率限制,這樣不需要搭建和生產環境一致的伺服器集群也可以正確測試。gor 還支援根據正規表示式過濾流量,這意味著可以單獨測試某個 api 服務。還可以修改 http 請求頭,比如替換 user-agent, 或者增加某些 http header 。

gor 還可以把請求記錄到檔案,以備回放和分析。gor 支援和 elasticsearch 整合,將流量存入 es 進行實時分析。

簡單的 http 流量複製:

http 流量複製頻率控制:

http 流量複製縮小:

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

http 流量記錄到本地檔案:

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

http 流量回放和壓測:

http 流量過濾複製:

這個 golang 寫的 gor 是開源的,意味著可以方便的整合到自己的架構中,可以用在壓力測試平台、實時流量分析、應用層防火牆等等方面。

/blob/master/elasticsearch.md

Web 應用效能和壓力測試工具 Gor

web 應用壓力測試工具有很多,比如 apache ab,node ab,apache jmeter,loadrunner,httperf。但是這些工具都沒能解決乙個問題 如今 web 應用的架構變得非常複雜,內部包含複雜的各種負載均衡 服務和 rpc 呼叫關係,簡單的傳送 get 請求到某些 ur...

web效能壓力測試工具

為了測試之前寫的http伺服器的專案,學習一下以下幾個web壓力測試工具。1 概念 http load以並行復用的方式執行,用以測試web伺服器的吞吐量與負載。1 利用wget遠端安裝 wget 2 解壓縮 tar zxvf http load 12mar2006.tar.gz 3 進入http l...

Web效能壓力測試工具 siege

wget 解壓縮 root wg siege 4.0.0 beta6 tar zxvf siege 4.0.0 beta6.tar.gz 進入解壓目錄 root wg siege 4.0.0 beta6 cd siege 4.0.0 beta6 root wg siege 4.0.0 beta6 c...