還為模擬流量測試發愁嗎?!滴滴開源RDebug流量回放工具!
我們經常在性能測試和壓力測試的時候發愁,如何模擬線上真實流量還原現場使用情況對于我們來說是個大挑戰。通常情況下,我們會從數據庫中找出用戶訪問的數據和請求來模擬歷史訪問,這樣做需要做大量的腳本和數據分析工作。現在好了滴滴開源RDebug工具可以錄制線上的真實流量,并且可以通過回放的方式對系統進行測試。幫助我們實現性能測試和壓力測試,并且可以快速的對高峰訪問情況進行復盤。我們一起來看看吧。
GitHub開源
地址:https://github.com/didi/rdebug/blob/master/README_zh_CN.md
目前有700左右的星星了。

鑒于微服務具有易于擴展、部署簡單、技術異構性等優點,越來越多的服務都在采用微服務的架構模式。一個復雜的單體服務通常會被拆分成多個小的微服務,當然在享受微服務帶來的一系列便利的同時也要接受因為微服務改造帶來的問題:需要維護的服務數變多、服務之間 RPC 調用次數增加……
在服務化改造完成之后,原來的單體服務演化成一堆微服務,這就造成線下開發測試環境維護成本大大增加,其次線下環境涉及到的部門較多,維護一個長期穩定的線下環境也是一個挑戰;業務快速發展、需求不斷迭代,手寫單測又因復雜的業務邏輯以及復雜的服務調用需要 mock 多個下游服務,導致手寫單測成本特別的高;手動構造數據,又不夠全面真實。以上問題都嚴重影響 RD 的研發效率,并且增加線上發生事故的隱患。
主要功能
流量錄制: 即錄制線上服務的真實請求,包括調用下游服務的 RPC 請求。流量錄制的難點在于如何將上下游請求以及每次 RPC 的請求/響應一一對應。
流量回放: 即用線上錄制的流量,對線下測試代碼進行回放,通過流量匹配 mock 掉下游 RPC 請求。因此,流量回放的難點在于請求的攔截和匹配。三種方式的回放:下載源碼回放、midi.phar 包回放、composer bin 回放。
架構

通過Koala和Koala-libc 作為核心代碼,實現底層庫
Koala是Go編寫的,Libc用了部分C++完成
https://github.com/didi/rdebug/blob/master/koala/README.md
生成報告


