1. 初步规划

写在前面

本项目所有代码均可在github上下载。

因为目前正从事测试平台开发的相关工作,但是苦于市场上的大多数产品的针对性太强,或多或少没有一个通用的方案。于是想利用自己的空余时间,写一个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

总结

总之呢,要做的东西很多~~~~可能后面会阉割掉一些东西吧,大概方向定一下。慢慢做,算是鞭挞自己吧···

下一篇: 后端服务设计

猜你喜欢

转载自www.cnblogs.com/we8fans/p/9665656.html
1.
今日推荐