项目背景
在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+
部署步骤
- 克隆项目
git clone https://github.com/siYuanJun/pressure-test-platform.git
cd pressure-test-platform
- 配置数据库
# 创建数据库
mysql -u root -p < databases_sql/schema.sql
- 启动后端服务
cd backend_admin_python
source venv/bin/activate
pip install -r requirements.txt
python start_app.py
- 启动前端服务
# 启动管理后台
cd frontend_admin_web
npm install
npm run dev
# 启动客户端
cd frontend_client_web
npm install
npm run dev
使用场景
-
网站上线前性能验证 在网站正式上线前,通过压测平台验证系统在高并发情况下的稳定性和性能表现。
-
功能迭代后的性能回归测试 每次功能迭代后,使用压测平台进行性能回归测试,确保新功能不会影响系统性能。
-
系统优化效果验证 对系统进行性能优化后,通过压测平台验证优化效果。
项目结构
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/ # 部署文档
未来规划
- Docker容器化部署:提供一键部署方案,简化环境配置
- 更多压测指标支持:增加更多性能指标的监控和分析
- 自定义报告模板:支持用户自定义报告格式
- API接口扩展:提供更多API接口,支持与其他系统集成
开源贡献
项目采用MIT许可证,欢迎广大开发者贡献代码和提出建议。如果你对项目感兴趣,可以通过以下方式参与:
- Fork项目并提交Pull Request
- 在Issues中提出问题和建议
- 完善项目文档
联系方式
- GITHUB 地址:github.com/siYuanJun/p…
- 码云地址:gitee.com/siYuanJun/p…
- 邮箱:siyuanjunr@163.com
- 掘金:@三至二十四
通过这个开源压测平台,我希望能够帮助更多开发者轻松实现网站性能测试,提升Web应用的质量和用户体验。如果你觉得项目有价值,欢迎Star和分享!