資料倉儲服務可靠性測試用例設計

秦無殤發表於2019-03-29

1、資料倉儲服務架構

資料倉儲服務(Data Warehouse Service),下面簡稱DWS 。主要為客戶提供資料儲存,資料探勘,資料分析等功能。其核心採用開源的關聯式資料庫管理系統Postgres SQL加以定製開發。服務部署在叢集上,叢集有3~32個虛擬主機組成。使用者使用DWS叢集的請求處理流程如下:

1.1、使用者通過客戶端,例如chrome,IE,FireFox等瀏覽器登入DWS介面,對應於下圖中的1。

1.2、使用者對DWS叢集做了一個操作,比如重啟,對應於下圖中的2。

1.3、Nginx根據排程策略將重啟請求下發到某一個console節點上,對應於下圖中的3.

1.4、Console節點將請求通過HAproxy根據某種排程策略,將請求下發到service節點上,對應於圖中的4。

1.5、service節點處理重啟任務,並更新資料庫中相關表的記錄,對應於圖中的5,並返回處理結果。

其它節點功能說明:

1.6、monitor節點:監控叢集的狀態。

1.7、billing節點:計費。

1.8、OM Sevice節點(insight):運維節點,一些運維操作會通過該節點下發到service節點上。

1.9、DB節點:資料庫節點,一主一備。

2、可靠性測試的含義與測試過程

可靠性測試是指:系統在常規與意外環境執行和保持其功能的能力,系統必須能以一致性和可重複性的方式執行並保持其功能。(概念出自《敏捷軟體測試:測試人員與敏捷團隊的實踐指南》)

測試過程:

2.1、明確可靠性測試的目標,同一個系統,不同的測試目標設計出來的用例也不一樣。

2.2、瞭解軟體的架構。

2.3、設計可靠性測試用例。

2.4、執行可靠性測試用例。

2.5、分析可靠性測試結果並輸出測試報告返回給測試經理。

3、用例設計

主要從以下幾個方面來考慮,可靠性測試的原則之一:故障恢復後業務能夠自修復。

3.1、從架構設計圖來看一共涉及的的節點有:console,service,billing,db,insight,monitor。其中只有insight部署在一臺主機上,其餘節點均部署在2臺或2臺以上的伺服器上,以service為例,一臺伺服器當機了是否會影響業務,兩臺呢,或者全部當機後開機能否自行恢復業務呢?

 

3.2、記憶體佔用率:單個節點的記憶體佔用率達到90%和100%;多個節點 記憶體佔用率達到90%或100%。

 

3.3、CPU佔用率::單個節點的CPU佔用率達到90%和100%;多個節點 CPU佔用率達到90%或100%。

 

3.4、磁碟使用率::單個節點的磁碟使用率達到90%和100%;多個節點 磁碟使用率達到90%或100%。

 

3.5、網路故障:單個節點網路故障,多個節點網路故障。單個節點和多個節點某個網路卡down掉。

 

3.6、單個節點重啟,或多個節點重啟。

 

3.7、功能首次失敗時間,比如:建立DWS叢集首次失敗時間,即初始操作和首次失敗之間的平均時間。

 

3.8、DWS叢集長時間執行業務,是否出問題。

 

3.9、併發操作:比如同時建立50個叢集,觀察成功率,可以使用BrupSuite工具。

 

3.10、業務能否從節點A遷移到節點B,比如建立叢集的任務正在節點service1上執行,此時,service1當機,任務能否成遷移到service2或service3上。

 

4、可靠性測試過程中用到的工具

 寫滿磁碟

參考命令:dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file 

佔滿記憶體

待補充

佔滿CPU

參考:https://blog.csdn.net/robertsong2004/article/details/36879233

相關文章