背景
創業型公司或創新型專案往往團隊資源有限,人員能力水平有限,難以投入專業自動化壓測人員;
同時部分業務(tob/toc場景)長期有中小型活動場景帶來小規模流量並行,需要產研能長期保障並及時感知和解決網站效能和穩定性問題。
目標
1. 開發人員5分鐘上手壓測,30分鐘熟練。
2. 常規效能壓測自動化,常態化;零開發,零測試投入;1分鐘自動化生成報告,快速定位問題!
3. 針對場景(運營活動)效能壓測自動化,整體壓測效能提升10倍。減少1名專業壓測人員投入!
方案
本身工具開發難度不高,專案速度快,投入週期短;同時也長期解決問題,靈活適配,能有效達成目標;
基於
BSF基礎框架構建全鏈路壓測框架,從框架層面進行
流量錄製(也可以從瀏覽器自定義錄製),從工具層面進行流量回放,進行效能壓測,自動輸出壓測報告,自動進行全鏈路功能驗收,從而提升測試效能,指導網站效能優化。
全鏈路壓測架構設計
1. 業務層引入bsf core和autotest jar包,該基礎框架可以對流量進行取樣錄製。
2. 取樣錄製的流量批次同步到mysql儲存引擎。
3. 全鏈路壓測管理端,進行任務編寫並啟動壓測任務。
4. 壓測任務分發到壓測到節點叢集,並進行樣本流量批次回放壓測。
5. 超過時間或者指定條件後,自動生成壓測報告。
全鏈路壓測任務執行生命週期
任務分別由樣本篩選指令碼,錯誤過濾樣本指令碼,壓測請求前指令碼,壓測請求後指令碼,任務終止指令碼組成。
壓測節點收到任務後按照任務執行生命週期,不間斷進行壓測,直到命中「任務終止指令碼規則」後,正常退出。
全鏈路壓測管理端功能
1. 任務管理:可以對客製化的壓測任務進行編寫,管理。可以實現不同場景和不同姿勢的壓測進行客製化。
編寫任務幫助檔案
3. 節點狀態:可以管理所有壓測節點的心跳和狀態及當前的效能情況。
4. 壓測報告:可以管理所有壓測任務自動生成的報告。
5. 執行紀錄檔:所有壓測任務和定時計劃執行的執行紀錄檔,在壓測執行異常的時候,可以檢視執行紀錄檔獲悉。
6. 取樣查詢:自動化bsf框架錄製的流量或者使用者自動匯入的流量,可以通過此選單進行查詢和模擬呼叫驗證。
8. 使用者管理:可以管理平臺使用者和token授權。
9. 幫助檔案:到gitee原始碼管理檔案和一些最佳實踐檔案。
快速編譯
注意 bsf-core.jar和bsf-autotest.jar包,可能出現包參照錯誤,請至
gitee release中下載相應jar包。
cd lmc-autotest
mvn install
快速安裝
一般在mysql8.0,jdk8環境下,三步執行即可安裝。同樣也可以支援雲原生方式安裝,如
阿里雲安裝最佳實踐。
#web管理端
nohup java -jar \
-Dspring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/autotest?useSSL=false \
-Dspring.datasource.druid.username={資料庫} \
-Dspring.datasource.druid.password={資料庫} \
lmc-autotest-provider.jar > provider.log 2>&1 &
#壓測節點
nohup java -jar \
-Dspring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/autotest?useSSL=false \
-Dspring.datasource.druid.username={資料庫} \
-Dspring.datasource.druid.password={資料庫} \
lmc-autotest-task.jar > task.log 2>&1 &
支援多語言使用和第三方介入
完善的實踐檔案
功能介面展示
加微信,可免費試用交流!