一、测试平台的目的
项目背景
- 测试人员代码水平普遍较低
- 培训机构动不动就几千几万的割韭菜
- 测试人员前途迷茫
- 基础技术知识懂得少
- 低代码平台的需要
测试平台的作用
- 测试平台可以整合公司资源
- 测试平台可以方便研发(产研团队)人员进行测试/汇报/统计
- 测试平台可以锻炼测试人员代码及架构能力,同时可以提升排查问题效率
- 测试平台可以给企业增效、为研发赋能、让测试更简单
- 测试平台可以制定规则,推动TDD测试驱动的落地
- 测试平台可以实现的能力
- 接口自动化
- 性能测试
- ui自动化
- cicd
- 项目管理
- 测试管理
- 流量录制与回放
- 集成监控
- 外部调用openapi
- 集成链路追踪
- 定位性能、功能问题
- 数据大屏,统计阶段数据、质量数据
等等
二、架构设计
架构图
架构详解 - 首先用户(多用户)通过浏览器访问
- 前端ui部分主要进行输入和输出,通过用户操作,将数据发送给management进行保存。并通过调用management服务的api展示数据详情
- mangagement服务将数据保存在mysql和mongo数据库中,再通过查询mysql、mongo、redis数据返回给前端
- mysql存储企业、团队、用户基本信息,并存储计划、场景、接口基本信息以及操作日志
- mongo存储场景、接口、用例,报告,debug日志等详情
- engine压力机服务启动后,会向redis注册机器信息,management通过redis查看可用压力机,进行压力机调度
- engine收到请求后,根据请求进行接口、场景、用例调试及进行性能测试和接口自动化测试
- 性能测试过程中engine将压测数据写入kafka指定topic的指定分区,collector服务循环监听topic上的所有分区,分区中有消息时,进行消费,并计算测试结果,根据指定的时间定时写入redis数据库,management服务通过读取redis中的数据返回给前端ui,展示测试报告。当任务结束后,collection会释放原kafka分区,并重新监听,management会将测试报告持久化到mongo数据库并清空redis中的报告数据。
- 当有第三方接口未提供或有不方便进行测试的接口时,可以使用mock服务配置mock接口
- 通过全链路监控及资源监控接入被测服务。
等等
如果你正在寻求搭建测试平台,欢迎关注大厨的测试平台系列,我们将从0-1搭建一套完成的测试平台解决方案。