写在前面
因为目前正从事测试平台开发的相关工作,但是苦于市场上的大多数产品的针对性太强,或多或少没有一个通用的方案。于是想利用自己的空余时间,写一个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,也可以自己造轮子。用来做定时任务等工作。
功能蓝图
如下图, 画完之后瞬间就不想做了。嘎嘎嘎···
总结
总之呢,要做的东西很多~~~~可能后面会阉割掉一些东西吧,大概方向定一下。慢慢做,算是鞭挞自己吧···
有疑问加站长微信联系(非本文作者)