566.【數(shù)據(jù)庫自動化測試流程構(gòu)建】各模塊簡介

從客戶端到服務(wù)端簡單介紹下整個數(shù)據(jù)庫自動化測試的各個模塊:

一、客戶端功能模塊

  1. 選擇測試環(huán)境:包括單機版、集群版,指定自動構(gòu)建的測試環(huán)境,提交后,將由服務(wù)端調(diào)用k8ssdk 在kubernetes中創(chuàng)建基礎(chǔ)的數(shù)據(jù)環(huán)境;
  2. 選擇jar版本:數(shù)據(jù)庫版本迭代時發(fā)布的jar包,在測試環(huán)境啟動時會根據(jù)該參數(shù)實時下載jar包;
  3. 選擇測試數(shù)據(jù)集:包括ssb、tpch數(shù)據(jù)集,在測試環(huán)境啟動時會根據(jù)該參數(shù)自動下載對應的數(shù)據(jù)集,并且下載對應的數(shù)據(jù)集的測試SQL腳本。
  4. 提交:點擊提交之后,將整個配置發(fā)送到服務(wù)端,由服務(wù)端自動執(zhí)行剩下的任務(wù)。
  5. 測試環(huán)境列表:展示當前系統(tǒng)中存在的數(shù)據(jù)庫環(huán)境,其中包含連接IP、端口等連接信息,測試人員可連接進去進行額外的測試。

二、服務(wù)端分層

  1. 表現(xiàn)層:接收客戶端請求,調(diào)用業(yè)務(wù)邏輯層,封裝裝業(yè)務(wù)邏輯層處理后的數(shù)據(jù)。主要是提供三個數(shù)據(jù)接口:一個是創(chuàng)建數(shù)據(jù)庫環(huán)境,另一個是刪除數(shù)據(jù)庫環(huán)境,另一個是展示測試環(huán)境狀態(tài)列表。
  2. 業(yè)務(wù)邏輯層:解析客戶端參數(shù),定制化調(diào)用k8ssdk創(chuàng)建數(shù)據(jù)庫環(huán)境,調(diào)用持久化層讀取寫入測試配置信息及其測試環(huán)境連接信息到數(shù)據(jù)庫;
  3. 數(shù)據(jù)持久化層:定義各個操作對象,包括測試環(huán)境連接信息對象(database_instance),數(shù)據(jù)庫jar對象(main_jar)。定義數(shù)據(jù)庫連接訪問操作,供接口控制模塊調(diào)用。

三、k8ssdk

k8s.io/client-go 的封裝,適配業(yè)務(wù)需求,簡化構(gòu)建 Service、Configmap、Statefulset、Volume 等 kubernetes 資源。

四、容器鏡像

鏡像中固定有數(shù)據(jù)庫的基本環(huán)境,包含數(shù)據(jù)庫服務(wù)和數(shù)據(jù)庫命令行工具,啟動時自動根據(jù)參數(shù)(在k8ssdk中指定)實時從靜態(tài)文件服務(wù)中獲取對應的數(shù)據(jù)庫版本jar包、測試數(shù)據(jù)、測試腳本等動態(tài)內(nèi)容。

五、Nginx 靜態(tài)文件服務(wù)

負責jar包、測試數(shù)據(jù)、測試腳本等需要實時獲取的數(shù)據(jù)的存儲,容器啟動時會根據(jù)從此處獲取實時數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容