网站压测平台是一个现代化的性能测试工具,为开发人员和运维团队提供简单、高效的网站压力测试解决方案。通过直观的用户界面,用户可以轻松提交压测申请,管理员审核后自动执行压测任务并生成详细的性能报告,帮助用户全面了解网站的性能瓶颈和承载能力。
- 提供直观的前后台界面,无需复杂的命令行操作
- 简化的申请流程,用户只需提交域名和备案信息即可申请压测
- 自动化的任务执行和报告生成,减少人工干预
- 测试关键性能指标:QPS、响应时间、错误率等
- 多维度可视化图表展示压测结果
- 支持多种报告格式(HTML/Markdown/图片),满足不同需求
- 基于角色的访问控制(普通用户/管理员)
- 严格的审核流程,确保压测的合法性和安全性
- 数据隔离,用户只能查看自己的申请和报告
- 采用前后端分离架构,支持高并发访问
- 异步任务执行,避免阻塞和资源浪费
- 可扩展的插件式设计,支持未来功能扩展
- 开源项目,欢迎社区贡献和建议
- 定期更新和维护,修复问题并添加新功能
- 用户前台:Next.js + Ant Design
- 管理后台:React + Ant Design Pro
- 开发工具:ESLint + Prettier
- API 服务:FastAPI (Python 3.10+)
- 数据库:MySQL 8.0+
- 缓存:Redis (可选)
- 压测工具:wrk
- 脚本语言:Bash
- 报告生成:Python + Matplotlib + Pandas
- 用户认证:注册、登录、登出
- 压测申请:提交域名和备案信息,查看申请状态
- 报告查看:查看已完成的压测报告,下载多种格式
- 反馈系统:提交反馈和联系信息
- 用户管理:查看、新增、编辑、禁用用户账号
- 申请审核:审核用户压测申请,支持通过/驳回操作
- 任务管理:查看、触发、终止、重试压测任务
- 报告管理:查看、预览、下载、删除压测报告
- 自动执行:审核通过后自动创建和执行压测任务
- 数据收集:收集QPS、响应时间、错误率等关键指标
- 报告生成:生成多格式报告,包含可视化图表
- 日志监控:实时查看压测执行日志
- 用户申请:用户注册登录后,提交压测申请(域名+备案信息)
- 管理员审核:管理员审核申请,决定通过或驳回
- 任务执行:审核通过后,系统自动创建压测任务并执行
- 生成报告:压测完成后,自动生成多格式性能报告
- 用户查看:用户可以查看和下载自己的压测报告
详细业务流程图和状态流转图可在 databases_sql/功能清单+流程图/功能清单+流程图.md 中查看。
- 操作系统:macOS 10.15+ / Linux Ubuntu 20.04+
- 必需软件:
- 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-platformCREATE DATABASE pressure_test_platform DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;cd backend_admin_python
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# macOS/Linux: source venv/bin/activate
# Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置数据库连接
# 编辑 config.py 文件,修改数据库连接信息
# 运行数据库迁移(如果需要)
python migrate.py
# 启动后端服务
python start_app.pycd frontend_admin_web
# 安装依赖
npm install
# 配置API地址
# 编辑 .env 文件,修改 API_BASE_URL
# 启动开发服务器
npm run devcd frontend_client_web
# 安装依赖
npm install
# 配置API地址
# 编辑 .env 文件,修改 API_BASE_URL
# 启动开发服务器
npm run dev- 管理后台:http://localhost:8000
- 用户前台:http://localhost:3000
- API 服务:http://localhost:8001
pressure-test-platform/
├── backend_admin_python/ # FastAPI后端服务
│ ├── app/ # 应用核心代码
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python依赖
│ └── start_app.py # 启动脚本
├── databases_sql/ # 数据库相关文件
│ ├── init.sql # 初始化SQL
│ ├── development_guide.md # 开发环境配置文档
│ └── feature_flow/ # 功能清单和流程图
├── frontend_admin_web/ # 管理后台前端
│ ├── src/ # 源代码
│ ├── .eslintrc.js # ESLint配置
│ ├── .prettierrc # Prettier配置
│ └── package.json # 前端依赖
├── frontend_client_web/ # 用户前台前端
│ ├── src/ # 源代码
│ ├── .eslintrc.js # ESLint配置
│ ├── .prettierrc # Prettier配置
│ └── package.json # 前端依赖
├── scripts/ # 压测脚本
│ ├── start.sh # 启动压测脚本
│ └── generate_report.py # 报告生成脚本
├── PROJECT_MAP.md # 项目结构说明
└── README.md # 项目说明文档
我们非常欢迎社区贡献!如果您有兴趣参与开发或改进,请按照以下步骤:
- 如果您发现了 bug 或有新功能建议,请先创建 Issue
- 详细描述问题或建议,包括重现步骤(如果是 bug)
- Fork 项目到自己的 GitHub 账号
- 创建功能分支:
git checkout -b feature/your-feature - 实现功能或修复 bug,确保代码质量
- 运行测试,确保所有测试通过
- 提交代码:
git commit -m "Add your feature" - 推送到远程分支:
git push origin feature/your-feature - 创建 Pull Request
- 遵循项目的 ESLint 和 Prettier 配置
- 编写清晰的代码注释
- 提交有意义的 commit 信息
- 确保测试覆盖新功能或修复的 bug
本项目采用 MIT License 开源许可证,允许自由使用、复制、修改和分发。
MIT License 是一种宽松的开源许可证,只要在项目的副本或衍生作品中保留原版权声明和许可证文本,您可以自由地:
- 使用本项目的代码用于商业或非商业目的
- 修改本项目的代码
- 分发本项目的代码或其修改版本
详细条款请查看项目根目录下的 LICENSE 文件。
如果您有任何问题、建议或反馈,请通过以下方式联系我们:
- 提交 Issue:在项目仓库中创建新的 Issue
- 邮件联系:siyuanjunr@163.com
- 社区讨论: GitHub Issues
- GITHUB 仓库: https://github.com/siYuanJun/pressure-test-platform
- 码云仓库: https://gitee.com/siYuanJun/pressure-test-platform
- 掘金:@三至二十四
感谢所有为项目做出贡献的开发者和用户!您的支持和建议是我们不断改进的动力。
本项目的开发离不开以下优秀的技术栈和工具支持:
- Next.js - 现代化的 React 框架
- React - 用于构建用户界面的 JavaScript 库
- Ant Design - 企业级 UI 设计语言和 React 组件库
- Ant Design Pro - 开箱即用的企业级中后台前端/设计解决方案
- ESLint - 代码质量检查工具
- Prettier - 代码格式化工具
- wrk - 现代 HTTP 基准测试工具
- Bash - Unix shell 和命令语言
- Matplotlib - Python 可视化库
- Pandas - Python 数据处理和分析库
- Trae AI - 智能开发平台,提供强大的 AI 辅助开发支持
注意:本项目仍在积极开发中,部分功能可能尚未完全实现。欢迎您的参与和贡献,共同打造更好的压测平台!