計畫介紹
基於
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
看到最後,如果這個計畫對你有用,一定要給我點個「 在看和贊 」。