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

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

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