Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第二章> 之 平台功能架构整理
平台功能架构设计
- 1、背景
- 2、功能脑图
- 2.1、大体功能
- 2.2、自动化测试模块
- 3、架构设计
- 3.1、架构图
- 3.2、设计思路
- 3.3、实现目标
- 4、总结&预告
1、背景
开发一个软件,一开始肯定是做设计,有好的设计才会有好的产品出来,边开发边设计试错成本很高,这种时代已经过去;现在没有人会等着我们试错,要做就一次性做好。所以我们开发平台前,先做设计;
作为一名软件测试人员,虽然我们很懒,但我们掌握的技能是非常多的,如:软件设计,文档编写,规范设定,软件设计,软件开发,CI/CD,软件运难,硬件运维等等~
很多时候资源都会倾向于产品、研发,所以测试被逼着掌握很多技能来保证的测试质量。
如:
需求设计、产品搞不定了,测试上~
研发功能、开发搞不定了,测试上~
前端功能、人力不够了,测试上~
当然这里的测试应是测试开发,所以作为一名测试人员,来开发这个自动化平台,就需要先设计;
因为我们都搞不定的时候,没有别人可以指望了,因为我们搞不定的时候,找不到背锅的人了。
夫庙堂之“测”者,位列肱骨,实为骡马。公器私用,能者多劳,多劳者必多过,多过者必为“锅”者也。呜呼!此非天命欤? 嘿嘿~
不聊过多,我们开始来设计了,本文不会过多的设计细节,只将一些功能脑图,系统架构设计一下;
2、功能脑图
2.1、大体功能
整个平台分为三大模块
用户注册登录
自动化测试
系统管理
这三块包含了整个平台的所有功能,具体细节如下图
其中以自化测试功能为核心,细节较多,先要拆分好,免得后续开发平台磕磕绊绊的,增加自已开发的工作量,具体功能拆分如下
2.2、自动化测试模块
其实还有很多细节没有设计出来,大方向不差,细节无伤大雅(其实是有AI,吾辈要善于使用工具)
下面便开始设计软件架构了。
3、架构设计
3.1、架构图
从上图可以看出测试的野路子设计,哈哈,下面讲一讲设计思路与想法:
3.2、设计思路
本自动化测试平台的整体架构设计遵循前后端分离的现代Web应用设计模式,核心思路是“高内聚、低耦合”和“关注点分离”。该设计旨在构建一个职责清晰、易于扩展、维护简单且能快速响应业务变化的系统。
架构图清晰地勾勒出了三个核心层次:前端应用层、后端接口层和数据模型层。其设计思路具体体现在以下几个方面:
清晰的分层架构:
前端层:负责用户交互与界面渲染,构建单页面应用(SPA)。通过将界面元素与业务逻辑分离,前端可以独立开发、部署和迭代,提升用户体验和开发效率。
接口层(后端控制层):作为系统的核心枢纽,接收前端请求,协调调度各项业务服务,并进行业务逻辑处理和数据封装。该层按功能模块划分为不同的控制器,实现了API接口的模块化管理。
模型层(数据持久层):基于关系型数据库MySQL进行数据建模,负责所有业务数据的持久化存储、访问和完整性管理。该层通过ORM框架与接口层交互,确保数据操作的安全与高效。
模块化的功能设计:
后端接口层并非一个庞大的整体,而是根据业务领域被细分为多个控制模块:
用户控制层:集中处理所有与用户身份认证和基本信息相关的操作,如注册、登录、个人信息维护,是系统的安全入口。
自动化测试控制器:这是平台业务功能的核心,专门处理接口测试、用例管理、计划执行、环境配置等自动化测试领域的核心操作,确保测试逻辑的独立性和专业性。
系统管理APP控制层:专注于系统的运维和治理,包括用户权限管理、操作审计、平台全局设置等,为系统的稳定、安全运行提供保障。
这种模块化设计使得系统功能边界清晰,便于团队协作开发,也极大地方便了未来的功能扩展和维护。
数据驱动与可靠性:
选择MySQL作为关系型数据库,旨在利用其事务特性、数据一致性和强大的关联查询能力,可靠地管理平台中复杂的关联数据,如用户-角色-权限关系、用例-套件-计划关系、执行日志等,为平台的数据完整性提供坚实基础。
3.3、实现目标
基于上述设计思路,本架构旨在实现以下核心目标:
功能完备性与用户体验:
目标:通过前端提供直观、流畅的操作界面,覆盖从项目创建、接口/用例管理、测试执行到报告分析的完整自动化测试生命周期。
体现:清晰的导航结构(如架构图中列出的“用例管理”、“执行计划”、“环境配置”等)能够引导用户高效地完成测试工作。
高效协同与安全可控:
目标:构建一个支持多角色、多项目协同工作的安全平台。
体现:通过“用户管理”、“权限控制”、“超管初始化”等模块,实现精细化的权限划分;通过“操作日志”功能记录所有关键行动,保障系统操作的可追溯性。
开放性与集成能力:
目标:平台不应是一个封闭的系统,而应具备良好的集成和扩展能力。
体现:清晰的RESTful API接口层设计,为未来集成CI/CD工具(如Jenkins、GitLab
CI)、第三方通知系统(如钉钉、邮件)、或其他测试工具(如Jira、Swagger)提供了标准且便捷的接入方式。
可扩展性与可维护性:
目标:确保平台能够随着业务发展和技术演进平滑地扩展新功能,同时降低维护成本。
体现:分层和模块化的架构使得添加新功能(如在“自动化测试控制器”中增加一个新的测试类型支持)变得简单,只需关注特定模块而无需改动整体架构。前后端分离也允许前后端技术栈独立演进。
4、总结&预告
功能与架构设计通过前后端分离和模块化拆分,旨在打造一个不仅满足当前功能需求,更具备高性能、高可用、易扩展特性的现代化自动化测试平台,为测试团队提供强大、可靠的基础设施支撑。
本来还准备设计models的,也就是数据库模型,但设计到一半时,不知觉写上代码了,一直在修修改改,思路不是很清晰,等捋一捋下章再写出来。目前的章节都是试看不担误事~