小知識:
bundle和模塊可以理解是一樣的意思
動態bundle生命週期
Install:完成模塊下載、解壓和解析,異常進入HandleException
Load:完成log4j日誌配置、spring上下文加載、執行模塊啓動回調方法、執行健康檢查等,異常進入HandleException
場景如下:有一個平臺,在這平臺上,用戶可以配置模塊名稱、版本號、機器/機房名稱,點擊確定之後程序會自動去加載動態bundle zip包,然後開始安裝動態bundle,完成install->load的操作。
測試準備
動態zip包導入指定的路徑,比如/home/admin/xxx
測試分析
sofa動態bundle的測試主要是考慮動態bundle的生命週期、異常情況
測試場景:
- 正常情況下安裝成功,模塊檢測,能出現對應的模塊名字、版本、機器等信息
- 灰度版本推全,原基礎版本在所有機器卸載成功,模塊檢測,不再出現對應的模塊信息
- 灰度版本切換,原基礎版本不會更改,原灰度版本在指定機器卸載,新灰度版本生效,模塊檢測,模塊信息正確
- 還要考慮異常情況。比如模塊不存在,或者模塊安裝錯誤(路徑不對,沒有實現) 等的異常情況
測試策略
功能測試:覆蓋平臺的測試場景
接口測試:平臺的測試場景實現自動化
單元測試:實現instal、Load、unload、uninstall的單元測試
總結:
平臺實現自動化,測試考慮動態bundle的生命週期和異常情況場景的測試覆蓋