全棧測試平臺(tái)RunnerGo架構(gòu)詳解

RunnerGo致力于打造成一款全棧式測試平臺(tái),采用了較為寬松的Apache-2.0 license開源協(xié)議,方便志同道合的朋友一起為開源貢獻(xiàn)力量,目前實(shí)現(xiàn)了接口測試、場景自動(dòng)化測試、性能測試等測試能力。隨著不斷的迭代,RunnerGo將會(huì)不斷推出更多的測試功能,目的是為研發(fā)賦能,讓測試更簡單。
由于是一款在線平臺(tái),所以有相應(yīng)的架構(gòu)設(shè)計(jì)。初衷是多方面的,在設(shè)計(jì)及開發(fā)中也經(jīng)過多番的變更,最終定型為目前的架構(gòu)。當(dāng)然這也許不是最優(yōu)的架構(gòu),只是是適合現(xiàn)階段的最優(yōu)架構(gòu)。
體驗(yàn)RunnerGo:https://www.runnergo.com/
架構(gòu)圖:

數(shù)據(jù)流轉(zhuǎn)圖:

服務(wù)介紹:
rg-management服務(wù):主要有用戶管理、接口、場景、計(jì)劃、報(bào)告、機(jī)器等以及報(bào)告匯總、分布式智能算法等功能;
rg-engine服務(wù):壓測引擎,主要是發(fā)送接口請求,記錄測試數(shù)據(jù);
rg-collector服務(wù):主要用于消費(fèi)kafka消息(測試數(shù)據(jù)),并將數(shù)據(jù)進(jìn)行處理;
前端服務(wù):主要用于展示,校驗(yàn)與用戶進(jìn)行交互。
中間件介紹:
redis:存儲(chǔ)臨時(shí)數(shù)據(jù)(報(bào)告狀態(tài),機(jī)器狀態(tài),報(bào)告臨時(shí)數(shù)據(jù)以及其他臨時(shí)變更的數(shù)據(jù));
mysql: 存儲(chǔ)計(jì)劃列表、操作日志、報(bào)告列表、用戶信息、團(tuán)隊(duì)信息、定時(shí)任務(wù)配置、場景配置等;
mongo:存儲(chǔ)報(bào)告、日志、日志狀態(tài)等非結(jié)構(gòu)化數(shù)據(jù);
oss/本地服務(wù):存儲(chǔ)頭像、測試文件等;
kafka:消息通道(測試數(shù)據(jù))。
nginx:負(fù)載均衡。