使用真實流量請求進行系統測試

對測試環境進行測試時,若是能使用線上環境真實的請求進行測試的話,是否是更好些

GoReplay 就能夠用來捕獲真實的HTTP請求,並進行回放

在線上環境中使用 GoReplay 來收集請求,能夠實時轉給測試環境,也能夠保存爲文件,而後拿到測試環境進行回放

GoReplay 在進行請求回放時,會模擬真實狀況,例如 request1 和 request2 間隔了 3 秒,回放時,也會保留這3秒的間隔,能夠準確呈現訪問的負載情況

GoReplay 收集請求時,能夠進行過濾,只收集本身關心的請求

回放時,還能夠調整速度,例如想以真實環境下的2倍速度進行壓力測試,設置一下回放速率便可

使用示例git

 

  • 實時轉發github

 

例如 8000 端口運行的是線上系統,8001 端口運行的是測試系統

./gor --input-raw :8000 --output-http="http://localhost:8001"

把 8000 端口的請求都輸出到後面的地址

web


執行後就監聽並轉發,直到退出api

 

  • 錄製回放瀏覽器

 

錄製

./gor --input-raw :8000 --output-file=requests.gor

--output-file 參數指定了保存到哪一個文件



執行後,就開始監聽記錄,直到退出

退出後,在當前目錄下生成了一個 requests_0.gor 文件

回放

./gor --input-file requests_0.gor --output-http="http://localhost:8001"

--input-file 指定要回放哪一個文件,後面跟上文件名

--output-http 就是要把請求發送到什麼地址測試

 

  • 請求過濾url

 

例如只收集 /api 下的請求

./gor --input-raw :8080 --output-http staging.com --http-allow-url /api

例如只收集請求頭中符合 api-version 爲 1.0x 的請求

./gor --input-raw :8080 --output-http staging.com --http-allow-header api-version:^1\.0\dserver

 

  • 回放速度調整文檔

 

例如使用2倍速度進行回放

./gor --input-file "requests.gor|200%" --output-http "staging.com"

安裝測試

下載地址

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

下載並解壓 gor_v0.15.1_x64.tar.gz 後,是一個 gor 可執行文件,就能夠直接用了

爲了便於立刻實驗,GoReplay 提供了一個簡單的 web server

./gor file-server :8000

在瀏覽器中訪問 http://localhost:8000 能夠列出本地文件列表

使用這個server和不一樣的端口,就模擬出了不一樣的環境,方便實踐 GoReplay 的用法

官網 https://goreplay.org ,有詳細的使用文檔input

相關文章
相關標籤/搜索