# K6TestSystem **Repository Path**: smooth00/K6TestSystem ## Basic Information - **Project Name**: K6TestSystem - **Description**: 本项目通过AI辅助开发,主要是用来管理grafana k6性能测试,支持k6脚本上传编辑,测试计划创建编辑(支持压测策略定制),计划执行,报告生成和查看,同时支持grafana报告集成查看 目前只支持本地k6的测试和管理,后期会扩展分布式k6的测试管理,将来还会扩展第三方接口工具导入k6脚本,以及AI辅助编写k6测试脚本 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://smooth.blog.csdn.net - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-09 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # K6 测试管理系统 一个全面的Web系统,用于管理Grafana k6性能测试,包括脚本管理、测试计划创建、远程执行以及通过InfluxDB和Grafana进行结果可视化。 ## 功能特性 - **用户认证**:安全的登录和注册,支持基于角色的访问控制 - **脚本管理**:上传、编辑和管理k6测试脚本 - **测试计划管理**:创建和配置具有自定义参数的测试计划 - **远程执行**:使用可配置设置远程运行k6脚本 - **数据收集**:使用InfluxDB收集性能数据 - **结果可视化**:嵌入Grafana仪表板以可视化测试结果 - **响应式UI**:使用React和Material UI构建的现代、用户友好的界面 ## 前提条件 - Node.js (v14+) - SQLite - k6 - InfluxDB - Grafana ## 安装 ### 后端设置 1. **克隆仓库** ```bash git clone cd K6TestSystem ``` 2. **安装依赖** ```bash npm install ``` 3. **配置环境变量** 编辑 `.env` 文件并配置: ```env # 服务器配置 PORT=5000 NODE_ENV=development # 数据库配置 # 系统使用SQLite,无需额外配置 # JWT配置 JWT_SECRET=your_jwt_secret_key JWT_EXPIRE=7d # K6配置 K6_EXECUTABLE_PATH=/usr/local/bin/k6 # InfluxDB配置 INFLUXDB_URL=http://localhost:8086 INFLUXDB_DATABASE=k6 INFLUXDB_USERNAME= INFLUXDB_PASSWORD= # Grafana配置 GRAFANA_URL=http://localhost:3000 ``` 4. **启动后端服务器** ```bash npm run dev ``` ### 前端设置 1. **导航到客户端目录** ```bash cd client ``` 2. **安装依赖** ```bash npm install ``` 3. **启动前端开发服务器** ```bash npm start ``` ## 使用方法 ### 1. 用户注册与登录 - 访问应用程序:`http://localhost:8080` - 注册新账户或使用现有凭据登录 ### 2. 脚本管理 - 导航到"测试脚本"页面 - 上传新的k6脚本或编辑现有脚本 - 查看和管理您的脚本库 ### 3. 测试计划创建 - 导航到"测试计划"页面 - 通过选择脚本和配置参数(虚拟用户数、持续时间、RPS)创建新的测试计划 - 编辑或删除现有计划 ### 4. 测试执行 - 导航到"测试执行"页面 - 选择测试计划并点击"执行"以运行测试 - 实时监控执行状态 ### 5. 结果可视化 - 导航到"测试结果"页面 - 选择执行记录查看详细结果 - 选择可用的Grafana仪表板以可视化性能数据 ## API 端点 ### 认证 - `POST /api/auth/register` - 注册新用户 - `POST /api/auth/login` - 使用现有凭据登录 - `GET /api/auth/me` - 获取当前用户信息 ### 脚本 - `GET /api/scripts` - 获取所有脚本 - `POST /api/scripts/upload` - 上传新脚本 - `GET /api/scripts/:id` - 获取特定脚本 - `PUT /api/scripts/:id` - 更新脚本 - `DELETE /api/scripts/:id` - 删除脚本 ### 计划 - `GET /api/plans` - 获取所有测试计划 - `POST /api/plans` - 创建新测试计划 - `GET /api/plans/:id` - 获取特定测试计划 - `PUT /api/plans/:id` - 更新测试计划 - `DELETE /api/plans/:id` - 删除测试计划 ### 执行 - `POST /api/executions/run` - 运行测试计划 - `GET /api/executions` - 获取所有执行记录 - `GET /api/executions/:id` - 获取特定执行记录 - `DELETE /api/executions/:id` - 删除执行记录 - `PUT /api/executions/:id/stop` - 停止正在运行的执行 ### 机器 - `GET /api/machines` - 获取所有测试机器 - `POST /api/machines` - 添加新测试机器 - `PUT /api/machines/:id` - 更新测试机器 - `DELETE /api/machines/:id` - 删除测试机器 - `PUT /api/machines/:id/status` - 更新机器状态 ### 设置 - `GET /api/settings` - 获取系统设置 - `PUT /api/settings` - 更新系统设置 ## 项目结构 ``` K6TestSystem/ ├── client/ # 前端React应用 │ ├── public/ # 公共静态文件 │ └── src/ # React源代码 │ ├── components/ # 可重用组件 │ ├── pages/ # 页面组件 │ ├── i18n/ # 国际化文件 │ └── utils/ # 工具函数 ├── routes/ # 后端API路由 ├── models/ # 数据模型 ├── middleware/ # Express中间件 ├── utils/ # 后端工具函数 ├── uploads/ # 上传的脚本文件 ├── server.js # 主后端服务器 └── package.json # 项目配置 ``` ## 使用的技术 - **后端**:Node.js, Express, SQLite - **前端**:React, React Router, Material UI, Axios, react-i18next - **监控**:k6, InfluxDB, Grafana ## 贡献 欢迎贡献!请随时提交Pull Request。 ## 许可证 本项目采用MIT许可证。