我开源了一个全栈网站压测平台,助力开发者轻松实现性能测试

59 阅读4分钟

项目背景

在Web开发过程中,性能测试是确保网站稳定性和用户体验的关键环节。传统的压测工具要么配置复杂,要么缺乏完整的流程管理,导致很多开发者在性能测试环节遇到瓶颈。为了解决这个问题,我开发了一套完整的全栈网站压测平台,将压测申请、审核、执行和报告生成等流程进行了系统化管理。

技术栈

后端技术

  • Python + FastAPI:高性能的API框架,提供现代化的开发体验
  • MySQL:稳定可靠的关系型数据库,存储用户数据和测试结果
  • wrk:高性能的HTTP压测工具,用于执行实际的压测任务
  • JWT:安全的用户认证机制

前端技术

  • React + UmiJS:企业级前端框架,构建管理后台
  • Next.js:现代化的React框架,构建客户端界面
  • Ant Design:专业的UI组件库,提供良好的用户体验

核心功能

1. 完整的压测流程管理

  • 压测申请:用户可以方便地提交压测申请,包含目标URL、并发数、压测时长等参数
  • 申请审核:管理员可以对压测申请进行审核,确保资源的合理利用
  • 任务执行:系统自动执行审核通过的压测任务,记录详细的执行数据
  • 报告生成:自动生成直观的压测报告,支持PDF和图片两种格式

2. 强大的报告系统

  • 支持多维度的数据展示(响应时间、QPS、错误率等)
  • 提供图表化的结果分析
  • 支持历史报告查询和对比

3. 完善的用户管理

  • 用户注册和登录功能
  • 角色权限控制(普通用户/管理员)
  • 个人信息管理和申请历史查询

项目优势

1. 全流程自动化

从申请到报告生成,整个流程无需人工干预,极大提高了工作效率。

2. 易于使用

直观的用户界面,即使是没有专业性能测试经验的开发者也能轻松上手。

3. 高度可扩展

模块化的架构设计,支持功能的灵活扩展和定制。

4. 完善的日志记录

详细的日志系统,便于问题排查和性能分析。

快速开始

环境要求

  • Python 3.10+
  • Node.js 18.x+
  • MySQL 8.0+
  • Git 2.0+

部署步骤

  1. 克隆项目
git clone https://github.com/siYuanJun/pressure-test-platform.git
cd pressure-test-platform
  1. 配置数据库
# 创建数据库
mysql -u root -p < databases_sql/schema.sql
  1. 启动后端服务
cd backend_admin_python
source venv/bin/activate
pip install -r requirements.txt
python start_app.py
  1. 启动前端服务
# 启动管理后台
cd frontend_admin_web
npm install
npm run dev

# 启动客户端
cd frontend_client_web
npm install
npm run dev

使用场景

  1. 网站上线前性能验证 在网站正式上线前,通过压测平台验证系统在高并发情况下的稳定性和性能表现。

  2. 功能迭代后的性能回归测试 每次功能迭代后,使用压测平台进行性能回归测试,确保新功能不会影响系统性能。

  3. 系统优化效果验证 对系统进行性能优化后,通过压测平台验证优化效果。

项目结构

pressure-test-platform/
├── README.md                    # 项目总览
├── STATUS.md                    # 项目进度看板
├── CHANGELOG.md                 # 功能变更日志
├── PROJECT_MAP.md               # 项目结构心智图
├── databases_sql/               # 数据库相关文件
├── backend_admin_python/        # Python后端服务
├── backend_admin_wrk_bash/      # 压测脚本工具
├── frontend_admin_web/          # 管理后台前端
├── frontend_client_web/         # 客户端前端
└── deploy_docs/                 # 部署文档

未来规划

  1. Docker容器化部署:提供一键部署方案,简化环境配置
  2. 更多压测指标支持:增加更多性能指标的监控和分析
  3. 自定义报告模板:支持用户自定义报告格式
  4. API接口扩展:提供更多API接口,支持与其他系统集成

开源贡献

项目采用MIT许可证,欢迎广大开发者贡献代码和提出建议。如果你对项目感兴趣,可以通过以下方式参与:

  1. Fork项目并提交Pull Request
  2. 在Issues中提出问题和建议
  3. 完善项目文档

联系方式


通过这个开源压测平台,我希望能够帮助更多开发者轻松实现网站性能测试,提升Web应用的质量和用户体验。如果你觉得项目有价值,欢迎Star和分享!