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

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

常見的 Web 應用程式的壓力測試工具

Web 應用程式壓力測試工具有很多,比如 Apache ab,node-ab,Apache JMeter, LoadRunner, httperf。但是這些工具都沒能解決一個問題:

如何正確類比生產環境的流量

如今 Web 應用程式的架構變得非常複雜,內部包含複雜的各種負載平衡、 服務和 RPC 調用關係,簡單的發送 GET 請求到某些 URL 或者 API 介面完全無法類比真實的流量。假如回放 HTTP 日誌,操作又異常麻煩。Tcpcopy 雖然能夠複製即時資料流量,但是操作也很複雜。之前的 亞馬遜雲平台的遷移 就用到了 Gor 這個工具。

Gor 是 Web 應用程式壓力測試的完美方案

我一直在找一個簡單又方便的解決方案,直到找到了 Gor 。Gor 是用 Golang 寫的一個 HTTP 即時資料流量複製工具。只需要在 LB 或者 Varnish 入口伺服器上執行一個進程,就可以把生產環境的流量複製到任何地方,比如 Staging 環境、Dev 環境。完美解決了 HTTP 層即時資料流量複製和壓力測試的問題。

Gor 的功能

Gor 支援流量的放大和縮小、頻率限制,這樣不需要搭建和生產環境一致的伺服器叢集也可以正確測試。Gor 還支援根據Regex過濾流量,這意味著可以單獨測試某個 API 服務。還可以修改 HTTP 要求頭,比如替換 User-Agent, 或者增加某些 HTTP Header 。

Gor 還可以把請求記錄到檔案,以備回放和分析。Gor 支援和 Elasticsearch 整合,將流量存入 ES 進行即時分析。

Gor 的常用命令

簡單的 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.

最後

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


本文轉載自:http://blog.eood.cn/web-performance-testing-gor

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.