當前位置: 妍妍網 > 碼農

15.6k star! 推薦一款全鏈路壓測效能10倍提升的壓測工具

2024-06-26碼農

計畫介紹

基於 BSF基礎框架 構建全鏈路壓測框架,從框架層面進行 流量錄制 或瀏覽器自訂錄制,從工具層面進行流量回放,進行效能壓測,自動輸出壓測報告,自動進行全鏈路功能驗收,從而提升測試效能,指導網站效能最佳化。工具支持分布式部署,萬級高並行壓測,靈活客製化壓測;支持呼叫鏈傳遞,支持壓測染色!

計畫結構

lmc-autotest
-- lmc-autotest-core #公共程式碼 (核心層)
-- lmc-autotest-dao #資料庫操作 (數據層)
-- lmc-autotest-service #公共業務服務 (服務層)
-- lmc-autotest-task #壓測任務節點 (任務層)
-- lmc-autotest-provider #壓測管理站點 (網站及api層)
-- doc #計畫資料 (文件資料)
-- README.md #計畫文件 (說明文件)

計畫編譯

#外網開發人員使用, 註意bsf-core.jar和bsf-autotest.jar包,可能出現包參照錯誤
#請至gitee release中下載相應jar包。
cd lmc-autotest
mvn install

管理端和壓測端,整體程式碼邏輯還是非常簡單的,思路也容易理解!歡迎大家閱讀源碼進行修改~~~

bsf-autotest sdk源碼 包含呼叫鏈傳遞和染色傳遞邏輯,程式碼不多,思路簡單,可以自行客製。

壓測工具對比

autotest locust Jmeter LoadRunner
分布式壓力 支持 支持 支持 支持
單機並行能力
並行機制 執行緒 協程 執行緒 執行緒
開發語言 Java python Java Java
報告與分析 完善 簡單圖表 簡單圖表 完善
授權方式 開源 開源 開源 商業收費
測試指令碼形式 JavaScript python Gui Java
資源監控 支持 不支持 不支持(需下載外掛程式) 支持

全鏈路壓測設計

全鏈路核心流程圖

1. 業務層引入bsf core和autotest jar包,該基礎框架可以對流量進行采樣錄制。

2. 采樣錄制的流量批次同步到mysql儲存引擎。

3. 全鏈路壓測管理端,進行任務編寫並啟動壓測任務。

4. 壓測任務分發到壓測到節點集群,並進行樣本流量批次回放壓測。

5. 超過時間或者指定條件後,自動生成壓測報告。

單個節點建議最大2000-3000並行執行緒,可以開多個壓測節點(可部署10-20個節點,隨時擴縮容),支持萬級高並行大規模分布式效能壓測。

壓測任務生命周期圖

任務分別由樣本篩選指令碼,錯誤過濾樣本指令碼,壓測請求前指令碼,壓測請求後指令碼,任務終止指令碼組成。

壓測節點收到任務後按照任務執行生命周期,不間斷進行壓測,直到命中「任務終止指令碼規則」後,正常結束。

管理端功能

1. 任務管理:可以對客製的壓測任務進行編寫,管理。可以實作不同場景和不同姿勢的壓測進行客製。 編寫任務幫助文件

2. 定時計劃:可以對所有任務進行定時計劃編寫,管理。實作任務定時自動化排程。 編寫定時計劃幫助文件

3. 節點狀態:可以管理所有壓測節點的心跳和狀態及當前的效能情況。

4. 壓測報告:可以管理所有壓測任務自動生成的報告。

5. 執行日誌:所有壓測任務和定時計劃執行的執行日誌,在壓測執行異常的時候,可以檢視執行日誌獲悉。

6. 采樣查詢:自動化bsf框架錄制的流量或者使用者自動匯入的流量,可以透過此選單進行查詢和模擬呼叫驗證。

7. 公共方法庫:透過定義公共的方法庫,簡化任務和定時計劃的編寫。 公共方法庫幫助文件

8. 使用者管理:可以管理平台使用者和token授權。

9. 幫助文件:到gitee源碼管理文件和一些最佳實踐文件。

功能界面

安裝文件

推薦: 支持雲原生docker方式部署(也支持傳統方式套用部署),k8s部署可最大化利用資源,可以在壓測閑置的時候最大程度釋放資源給其他雲服務。秒級可擴縮容n個壓測節點,2G記憶體即可實作萬級並行壓測!

  • release

  • 快速安裝

  • 阿裏雲k8s部署實戰筆記

  • 使用文件

  • 客製場景錄制文件

  • 任務編寫案例

  • 任務編寫案例2

  • 計劃任務編寫案例

  • 樣本匯入案例

  • 公共方法庫案例

  • 實踐筆記

  • 小白快速上手壓測

  • 小白快速流量回放壓測

  • 自動化QPS核心和主要介面jenkins觸發效能壓測

  • 自動化QPS核心和主要介面效能url壓測

  • 自動化QPS不同級別介面壓測

  • 自動化QPS不同開發人員介面壓測

  • 自動化QPS全鏈路介面壓測

  • 自動化QPS秒殺介面壓測

  • 自動化TPS秒殺場景壓測

  • k8s捲動升級驗證

  • 更多詳情

    以上安裝,使用文件,實踐請瀏覽

    https://gitee.com/chejiangyi/lmc-autotest

    看到最後,如果這個計畫對你有用,一定要給我點個「 在看和贊 」。