# k6-mcp **Repository Path**: chang-xinping/k6-mcp ## Basic Information - **Project Name**: k6-mcp - **Description**: 开发自测神器:一键压测、发现慢 SQL、验证并发能力。让 AI 帮你做性能测试,开发阶段就发现问题,别等上线炸了才知道! - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 8 - **Created**: 2025-12-26 - **Last Updated**: 2026-01-04 ## Categories & Tags **Categories**: MCP **Tags**: None ## README # K6-MCP > 🚀 **让 AI 帮你做性能测试** —— 开发阶段就发现慢 SQL、接口瓶颈,别等上线炸了才知道! ## 😱 你是否遇到过这些问题? - 测试环境跑得好好的,一上生产就卡死? - 突然来了个大客户,数据量一上去接口就超时? - 上线后才发现慢 SQL,紧急加班优化? - 想做压测但不会写 K6 脚本? **K6-MCP 就是来解决这些问题的!** ## ✨ 核心价值 ``` ┌─────────────────────────────────────────────────────────────┐ │ 开发阶段就发现问题,而不是等上线后被用户发现! │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 📋 复制 cURL → 🤖 AI 自动压测 → 📊 发现瓶颈 → 🔧 立即优化 │ │ │ │ ✅ 不用学 K6 脚本语法 │ │ ✅ 不用手动配置参数 │ │ ✅ AI 帮你分析结果、定位问题 │ │ │ └─────────────────────────────────────────────────────────────┘ ``` ## 📸 效果展示 ### 批量接口压测 ![批量压测](photo/1.png) *一次压测多个接口,实时监控进度* ### 性能对比报告 ![性能报告](photo/2.png) *自动发现慢接口,对比分析性能差异* ### AI 代码分析 ![AI分析](photo/3.png) *AI 分析代码问题,给出优化建议* --- ## 🎯 典型场景 ### 场景一:发现慢 SQL ``` 你: 压测一下用户列表接口 [从浏览器复制 cURL] AI: 执行压测... ⚠️ 平均响应 800ms,P95 达到 2.3s 分析代码发现: → 查询 users 表没有使用索引 → 建议添加 idx_created_at 索引 你: 加完索引了,再测一次 AI: 执行压测... ✅ 平均响应 45ms,P95 89ms 性能提升 17 倍! ``` ### 场景二:数据量梯度测试 ``` 你: 测试订单导出接口,数据量从 1 万到 10 万 AI: [造数据] 插入 1 万条订单 [压测] 平均 1.2s ✅ [造数据] 增加到 5 万条 [压测] 平均 5.8s ⚠️ [造数据] 增加到 10 万条 [压测] 超时失败 ❌ 结论:数据量超过 5 万需要改用异步导出 ``` ### 场景三:并发能力验证 ``` 你: 这个接口能抗多少并发? AI: [10 并发] 平均 50ms ✅ [50 并发] 平均 120ms ✅ [100 并发] 平均 350ms ⚠️ 开始变慢 [200 并发] 错误率 15% ❌ 结论:当前配置最大承载约 100 并发 建议:增加数据库连接池或加缓存 ``` ## 📦 安装 ### 1. 安装 K6 ```bash # macOS brew install k6 # Windows choco install k6 # Linux sudo apt install k6 ``` ### 2. 安装 K6-MCP ```bash pip install k6-mcp ``` ### 3. 配置 Cursor 编辑 `~/.cursor/mcp.json`: ```json { "mcpServers": { "k6": { "command": "k6-mcp" } } } ``` 重启 Cursor,完成! ## 🚀 使用方式 ### 方式一:快速压测(最简单) 浏览器 F12 → Network → 右键请求 → Copy as cURL → 发给 AI ``` 你: 压测这个接口,10 并发 30 秒 curl 'https://api.example.com/users' -H 'Authorization: xxx' AI: ✅ 平均 89ms,成功率 100%,RPS 98.5 ``` ### 方式二:结合 MySQL MCP(推荐) 配置 MySQL MCP 后,AI 可以: - 📊 查看数据库数据量 - 🔧 自动造测试数据 - 🔄 每个请求用不同参数(避免缓存) - 🔍 分析慢查询原因 ```json { "mcpServers": { "k6": { "command": "k6-mcp" }, "mysql": { "command": "npx", "args": ["-y", "@benborger/mcp-server-mysql"], "env": { "MYSQL_HOST": "localhost", "MYSQL_USER": "root", "MYSQL_PASSWORD": "password", "MYSQL_DATABASE": "your_db" } } } } ``` **完整流程**: ``` 你: 压测用户详情接口,测一下不同数据量的性能 AI: [读代码] 接口查询 users 表 [MySQL] 当前数据量:1,234 条 [MySQL] 造数据到 1 万条 [MySQL] 取 500 个随机 ID 作为测试参数 [K6] 压测(每个请求查不同用户) 📊 结果: 1 万数据:平均 45ms ✅ 5 万数据:平均 180ms ⚠️ 10 万数据:平均 650ms ❌ 🔍 分析: 随着数据量增加,响应时间线性增长 查看代码发现 SELECT * 全表扫描 💡 建议: 1. 添加 WHERE 条件的索引 2. 只查询需要的字段 3. 增加分页限制 ``` ## 🛠 可用工具 | 工具 | 说明 | |------|------| | `quick_test` | 快速压测,传 cURL 直接执行 | | `data_driven_test` | 数据驱动压测,每个请求不同参数 | | `long_test` | 长耗时接口测试(导出/报表) | | `save_api` | 保存常用接口,一键复测 | | `compare_baseline` | 对比优化前后性能 | | `analyze_result` | AI 分析压测结果 | ## 📊 压测指标说明 | 指标 | 含义 | 参考值 | |------|------|--------| | **平均响应** | 所有请求的平均耗时 | < 200ms 优秀 | | **P95** | 95% 的请求在这个时间内完成 | < 500ms 可接受 | | **成功率** | 请求成功的比例 | > 99% 正常 | | **RPS** | 每秒处理的请求数 | 越高越好 | ## ⚠️ 注意事项 - 生产环境压测请用低并发(5-10),避免影响线上服务 - 本地/测试环境可以放心压测 - 单机并发上限约 100-500,更大规模需要 K6 Cloud ## 🔗 链接 - **源码**: https://gitee.com/chang-xinping/k6-mcp - **问题反馈**: https://gitee.com/chang-xinping/k6-mcp/issues ## 📄 License MIT