🚀 JMeter MCP服务器
这是一个模型上下文协议(MCP)服务器,允许通过MCP兼容的客户端执行JMeter测试并分析测试结果。
\[!重要\] 📢 在JMeter内部寻找AI助手? 🚀 结账 羽毛魔杖
📋 特性
JMeter执行
- 📊 在非GUI模式下执行JMeter测试
- 🖥️ 在GUI模式下启动JMeter
- 📝 捕获并返回执行输出
- 📊 生成JMeter报告仪表板
测试结果分析
- 📈 解析和分析JMeter测试结果(JTL文件)
- 📊 计算综合绩效指标
- 🔍 自动识别性能瓶颈
- 💡 生成可操作的见解和建议
- 📊 创建测试结果的可视化
- 📑 生成包含分析结果的HTML报告
🛠️ 安装
本地安装
- 安装
uv:
- 确保JMeter已安装在您的系统上,并且可以通过命令行访问。
⚠️ 重要:确保JMeter可执行。您可以通过运行以下命令来实现:
chmod +x /path/to/jmeter/bin/jmeter- 安装所需的Python依赖项:
pip install numpy matplotlib- 配置
.env文件,请参阅.env.example文件以获取详细信息。
# JMeter Configuration
JMETER_HOME=/path/to/apache-jmeter-5.6.3
JMETER_BIN=${JMETER_HOME}/bin/jmeter
# Optional: JMeter Java options
JMETER_JAVA_OPTS="-Xms1g -Xmx2g"💻 MCP使用
- 使用兼容MCP的客户端(例如Claude Desktop、Cursor、Windsurf)连接到服务器
- 向服务器发送提示:
Run JMeter test /path/to/test.jmx- MCP兼容客户端将使用可用工具:
JMeter执行工具
- 🖥️
execute_jmeter_test:在GUI模式下启动JMeter,但不按照JMeter设计执行测试 - 🚀
execute_jmeter_test_non_gui:在非GUI模式下执行JMeter测试(默认模式以获得更好的性能)
测试结果分析工具
- 📊
analyze_jmeter_results:分析JMeter测试结果,并提供关键指标和见解的摘要 - 🔍
identify_performance_bottlenecks:识别JMeter测试结果中的性能瓶颈 - 💡
get_performance_insights:获取提高绩效的见解和建议 - 📈
generate_visualization:生成JMeter测试结果的可视化
🏗️ MCP配置
将以下配置添加到MCP客户端配置中:
{
"mcpServers": {
"jmeter": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/jmeter-mcp-server",
"run",
"jmeter_server.py"
]
}
}
}✨ 用例
测试执行
- 在非GUI模式下运行JMeter测试以获得更好的性能
- 在GUI模式下启动JMeter进行测试开发
- 生成JMeter报告仪表板
测试结果分析
- 分析JTL文件以了解性能特征
- 识别性能瓶颈及其严重性
- 获取可操作的性能改进建议
- 生成可视化以更好地理解结果
- 创建全面的HTML报告,与利益相关者共享
🛑 错误处理
服务器将:
- 验证测试文件是否存在
- 检查文件的扩展名是否为.jmx
- 验证JTL文件是否存在并具有有效格式
- 捕获并返回任何执行或分析错误
📊 测试结果分析仪
测试结果分析器是一个强大的功能,可以帮助您更好地了解JMeter测试结果。它由几个部分组成:
解析器模块
- 支持XML和CSV JTL格式
- 使用流式解析器高效处理大型文件
- 验证文件格式并优雅地处理错误
度量计算器
- 计算整体性能指标(平均值、中位数、百分位数)
- 为详细分析提供特定于端点的指标
- 生成时间序列指标以跟踪随时间变化的性能
- 根据上下文将指标与基准进行比较
瓶颈分析仪
- 根据响应时间识别慢速端点
- 检测具有高错误率的易出错端点
- 发现响应时间异常和异常值
- 分析并发性对性能的影响
洞察生成器
- 为解决瓶颈问题提供具体建议
- 分析错误模式并提出解决方案
- 生成关于扩展行为和容量限制的见解
- 根据潜在影响优先考虑建议
可视化引擎
- 创建显示性能随时间变化的时间序列图
- 生成用于响应时间分析的分布图
- 生成端点比较图以识别问题
- 创建包含所有分析结果的全面HTML报告
📝 示例用法
# Run a JMeter test and generate a results file
Run JMeter test sample_test.jmx in non-GUI mode and save results to results.jtl
# Analyze the results
Analyze the JMeter test results in results.jtl and provide detailed insights
# Identify bottlenecks
What are the performance bottlenecks in the results.jtl file?
# Get recommendations
What recommendations do you have for improving performance based on results.jtl?
# Generate visualizations
Create a time series graph of response times from results.jtl