当前位置: 首页 > news >正文

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的,也就是数据库模型,但设计到一半时,不知觉写上代码了,一直在修修改改,思路不是很清晰,等捋一捋下章再写出来。目前的章节都是试看不担误事~

http://www.dtcms.com/a/391359.html

相关文章:

  • 神经网络学习笔记14——高效卷积神经网络架构EfficientNet
  • Flutter实现滑动页面停留吸附
  • 【Linux】基本指令介绍
  • 爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】----待完成
  • 【软考-系统架构设计师】特定领域软件体系结构(DSSA)
  • idea git使用提示问题处理
  • 数据结构初阶——哈希表的实现(C++)
  • Problem: lab-week3- exercise01 Insertion sort
  • 金融级虚拟机安全:虚拟化平台5大安全风险与国产化防护实践
  • 可视化在智慧城市中的应用
  • C#实现高性能拍照(旋转)与水印添加功能完整指南
  • Pandas 2.x与PyArrow:深入探索内存优化与性能提升技巧
  • opencv之轮廓识别
  • lesson65:JavaScript字符串操作完全指南:从基础到高级实战
  • 【脑电分析系列】第19篇:深度学习方法(一):卷积神经网络(CNN)在EEG图像/时频图分类中的应用
  • 写文件的几种方法
  • 序列化与反序列化漏洞及防御详解
  • uniapp 锁定竖屏,固定竖屏,锁定屏幕
  • 论文解读 | Franka 机器人的 CRISP-ROS2 集成实践:适配学习型操作策略与遥操作
  • Redis数据库(二)—— Redis 性能管理与缓存问题解决方案指南
  • TCP KeepAlive判断离线的记录
  • Ceph 测试环境 PG_BACKFILL_FULL
  • 维星AI的GEO搜索优化:企业在AI时代的可见度突围之道
  • Abp Vnext 数据库由SQL server切换MySQL
  • Linux嵌入式自学笔记(基于野火EBF6ULL):4.gcc
  • Mellanox网卡寄存器PPCC
  • [vibe code追踪] 应用状态管理 | 交互式点击 | 共享白板
  • SG-TCP232-110 单通道串口服务器,一键实现串口与以太网双向转换
  • 零基础入门神经网络:从数学公式到通俗理解
  • 坤驰科技诚邀您参加——第十三届中国光纤传大会