流量回放的學習記錄一


    首先,文章涉及到 JMETER 的部分參考了 https://blog.csdn.net/weixin_40686603/article/details/114589428  這是原文鏈接,作者是我的同事,為同事打個廣告。

    那么我們開始進入正文。

    JMeter 是應用最廣泛的測試工具沒有之一,即便是各個開源的平台,很大程度也是以 JMeter 作為 executor 來實現這種功能的,開源的 JMeter 源碼需要閱讀,因為計划要做流量回放平台,流量的錄制基於 APISIX,所以我來做流量回放的部分。

    流量回放,顧名思義,就是把生產上的流量錄制下來,在任意地方回放,關於為什么做流量回放很多文章已經說得非常清楚了,此處不再贅述。

    當前總結出流量回放平台比較出名的平台有滴滴的 sharingan(很重要,最后的設計思路也是參考了 sharingan),aliyun的 doom,去哪兒的 ARES,文章比較多的工具是 go-replay,tcpplay 等。為什么不直接使用工具回放,而是調研平台,有幾個原因:

   一,公司正在通過統一框架,將公司內的業務服務生態統一起來,自己開發的好處是定制程度高,可以隨時修改;

   二,人員成本可控.

   基於這兩點原因,參考了 sharingan 來實現我們自己的流量回放平台。不直接使用 sharingan 的理由是,我們公司是 java 技術棧,而 sharingan 是基於 go 開發的,有定制版 GOROOT,故放棄了。

   所以,流量回放平台如何設計?

   

    重畫了一次設計圖,避開了其他一些生態相關的事情。

    所以我們的重點是,如何在代碼層面實現流量回放?也就是根據日志,重新構造http請求再發出去。因為當前的平台 executor 使用的是 jmeter,所以我們要學習如何在代碼層面構造 jmeter的 測試計划。

    HashTree 是 JMeter 腳本的數據接口,所有通過 GUI 構造出來的 JMX 腳本最終被解析接 HashTree 上的一個個節點來順序執行。

    這是哈希樹的介紹 https://zh.wikipedia.org/zh-hans/%E5%93%88%E5%B8%8C%E6%A0%91

    所有的 JMeter 的組件,都被視為哈希樹的一個節點,我們要做的事情是把流量及其他操作,配置好以后,插入 hashtree,並調用 jmeter engine 執行它 。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM