Token导航 LogoToken导航TokenDH.com
JSON to jmx logo
运维云端stdio官方级别未说明来源级核验

JSON to jmx

MCP Server

一个智能的端到端自动化工作流,用于发现API、测试其性能并通过人机交互反馈进行优化。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
API测试性能优化PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

learningpanda130

提供方

learningpanda130

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python manage.py migrate

详细介绍

🚀 JSON到JMX-自动化API性能优化系统

一个智能的、端到端的自动化工作流程,用于发现API、测试其性能,并通过人工反馈进行优化。

Python

📋 目录

🎯 概述

此存储库演示了API发现和性能测试的完整管道:

  1. 使用无头浏览器和LLM的建议来抓取正在运行的web应用程序,以探索页面和表单。
  2. 记录应用程序发出的所有HTTP请求并将其写入 邮递员集合JSON.
  3. 将该集合转换为 JMeter .jmx 测试计划 使用Python转换器。
  4. 在Docker容器中运行JMeter计划以产生性能结果(CSV/HTML)。
  5. 提供一个简单的FastMCP服务器,将转换和执行步骤作为可调用工具公开,实现与人工智能代理或Claude desktop等桌面客户端的集成。
  6. 允许循环中的人员审查结果并重新运行管道,直到API达到性能预期。

该系统有意最小化,以便即使是初学者也能遵循流程。它可以扩展到更复杂的应用程序和更丰富的测试场景。

______________________________________________________________________

✨ 特性

特性描述
🔍 自动提取API爬网目标URL并发现所有API终结点
📦 邮差收藏生成自动生成与Postman兼容的JSON集合
🔄 智能转换转换邮递员→ JMX与 convert_postman_to_jmx.py
🐳 Docker集成JMeter在Docker中运行JMeter(无需手动设置)
📈 丰富的报告生成HTML+CSV性能仪表板
🔄 人在循环优化用于性能调优的交互式工作流程
🤖 MCP服务器集成为Claude Desktop和AI代理提供工具 postman_to_jmxrun_jmeter
📊 实时监控使用实时仪表板跟踪测试进度
🎯 重新运行能力使用不同配置轻松重新运行测试

______________________________________________________________________

📁 仓库结构

.
├── agent.py                        # Selenium crawler that builds a Postman collection
├── convert_postman_to_jmx.py       # Library + CLI that transforms a Postman JSON to a JMeter JMX
├── server.py                       # FastMCP server exposing `postman_to_jmx` and `run_jmeter` tools
├── demo_app/                       # Sample Django application with user dashboard and CRUD APIs
├── data/                           # Example files and runtime output (collections, JMX, results)
│   ├── sample.postman_collection.json
│   ├── sample.jmx
│   ├── results.csv
│   └── output/                     # default write location for new collections/jmx
├── mcp.json                        # MCP configuration used by the server
└── README.md                       # You are here

______________________________________________________________________

📊 工作流程图

flowchart LR
 subgraph App["🚀 Application Layer"]
        A["Django Web App"]
  end
 subgraph Auto["⚙️ Automation Pipeline"]
        B["agent.py
Selenium + LLM"]
        C["Postman Collection
JSON Configuration"]
        D["convert_postman_to_jmx
JMeter Converter"]
        E["JMeter
Docker Container"]
  end
 subgraph Out["📊 Outputs"]
        F["CSV / HTML Report
Performance Metrics"]
  end
 subgraph MCP["🔧 MCP Server"]
        M["server.py
Tool Integration"]
  end
    A --> B
    B --> C
    C --> D
    D --> E
    E --> F
    D  M
    E  M
    F --> H["Human reviews results and decides to rerun"]

     A:::app
     E:::tool
     D:::tool
     C:::tool
     B:::tool
     F:::output
     M:::tool
     M:::tool
    classDef app fill:#f4f1ea,stroke:#6b5b45,stroke-width:2px,color:#2b2b2b,font-size:14px
    classDef tool fill:#e8f3ff,stroke:#3b6ea5,stroke-width:2px,color:#1f2d3d,font-size:14px
    classDef output fill:#f1f9f2,stroke:#2f7d4e,stroke-width:2px,color:#1f2d3d,font-size:14px

🚀 系统的工作原理

  1. 从URL提取API: 爬虫(agent.py)使用Selenium导航前端。它向LLM(OpenAI GPT)请求简洁的下一步操作,如单击链接或填写表单,并记录由此产生的网络请求。
  2. 生成邮差收藏: 所有观察到的请求都附加到一个集合对象并写入JSON文件。
  3. 转换为JMX:PostmanToJMeterConverter 类读取JSON并构建等效的JMeter测试计划,保留标头、参数、正文和基本断言。
  4. 运行JMeter: 使用Docker镜像 justb4/jmeter,计划已执行(run_jmeter 工具)。结果以CSV格式捕获,JMeter本身可以将其转换为HTML。
  5. 人在环审批: 测试人员检查性能报告。如果未达到服务级别目标,他们可以调整原型或使用不同的代理设置重试。

______________________________________________________________________

💻 使用指南

先决条件

  1. Python 3.9+
  2. pip install selenium webdriver-manager openai mcp
  3. Docker已安装并正在运行
  4. (可选)设置 OPENAI_API_KEY 环境变量,以在代理中使用LLM建议功能。

运行Django演示应用程序

cd demo_app
python manage.py migrate
python manage.py runserver

运行爬虫代理

python ../agent.py http://127.0.0.1:8000

选项:

  • -o/--output –指定Postman集合的输出路径(默认 data/output/collection.json).
  • -m/--max-pages –可访问的最大页面数(默认值为10)。

将集合转换为JMX

局部的,局部的:

python convert_postman_to_jmx.py data/output/collection.json -o data/output/testplan.jmx

通过MCP服务器 (先启动服务器):

python server.py
# Then use an MCP client or Claude Desktop to call the tool:
# tool name postman_to_jmx collection="$(<data/output/collection.json)" output="data/output/testplan.jmx"

如果目录不存在,则会自动创建。

通过MCP运行JMeter

# using an MCP client:
# tool name run_jmeter jmx_path="data/output/testplan.jmx" results_path="data/results.csv"

默认结果路径为 data/results.csv 必要时将创建文件夹。

审查和迭代

打开 data/results.csv (或使用JMeter转换为HTML)以查看响应时间、错误率等。调整代理参数或应用程序逻辑,并根据需要重复。

______________________________________________________________________

了解输出文件

文件目的
output.jmxJmeter测试计划
results.csv原始性能结果
index.html交互式性能仪表板

🤝 贡献

这个项目是一个学习/演示工具。非常欢迎提出建议、错误报告和拉取请求。

贡献:

  1. 分叉存储库。
  2. 创建要素分支(git checkout -b feature/awesome)如果可能的话,添加测试。
  3. 提交一个拉取请求,明确描述您的更改。

______________________________________________________________________

目录标签

目录标签

API测试性能优化PythonClaude本地部署自动化工具JMeterPostman

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP