1. 初步規劃
寫在前面
因為目前正從事測試平臺開發的相關工作,但是苦於市場上的大多數產品的針對性太強,或多或少沒有一個通用的方案。於是想利用自己的空餘時間,寫一個web測試平臺,也順便記錄下自己的學習歷程。至於是否太監,就不得而知了。先暫且將他命名為lamb吧~~
軟體分類
首先我們需要明確產品的目標使用者,lamb主要是提供給廣大QA同學使用,基於web頁面的一款測試工具。
所以軟體的載體很明確,即PC端瀏覽器,考慮到手機端瀏覽器沒有相關經驗,暫時不支援。
技術選型
技術選型方面,首先的計劃是做到前後端分離。前後端分離的好處,是可以讓前端專注於頁面互動和資料的展示。以前我也用過flask的template, 那樣在html裡渲染資料,怎麼說呢。不太方便也不太利於團隊協作,而且資料和頁面是繫結的,無法做到獨立獲取資料。
-
前端
React+dva.js+antd
算是一個學習redux的過程,選用react的原因是react稍微熟悉一點,然後antd也有一定的瞭解。
-
後端
gin(golang)或者flask(Python)
這裡就比較糾結了,看心情了。目前公司使用的是go語言,但是久而久之感覺自己都不會寫Python了T.T,所以也考慮一下用回自己的老本行吧。其實如果有機會的話也想試試spring, 但是太雜了著實不好。後端語言框架的話還是待定吧。。
-
中介軟體
- redis(可選)
只是針對測試平臺的話,資料庫已經夠用了,所以暫時先不需要這個玩意兒。
-
db
考慮使用2種資料庫,關係型和非關係型。
-
關係型Mysql
主要存放使用者/團隊/許可權等資料。
-
非關係型Mongodb
用mongo的目的,主要是存放測試用例,測試報告和日誌等資料。
-
-
MQ(訊息佇列)
用mq主要是處理email, 用例執行等非同步介面。
-
jwt(json web token)
主要用來管理使用者登入狀態資訊並配合許可權控制。
-
job排程
可考慮結合jenkins api,也可以自己造輪子。用來做定時任務等工作。
功能藍圖
如下圖, 畫完之後瞬間就不想做了。嘎嘎嘎···

image.png

image.png

image.png
總結
總之呢,要做的東西很多~~~~可能後面會閹割掉一些東西吧,大概方向定一下。慢慢做,算是鞭撻自己吧···