How this skill is triggered — by the user, by Claude, or both
Slash command
/testkit:api2jmxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
---
本技能使 Claude 能够根据 API 接口文档(OpenAPI/Swagger 或 Markdown 格式)或自然语言输入(curl 命令、Raw HTTP 请求/响应、Postman Collection)自动生成 Apache JMeter 的 JMX 测试脚本。支持生成包含 HTTP 请求、参数、断言、参数化、数据驱动、性能测试配置和监听器的完整测试计划。
当用户请求生成 JMX 测试脚本时,您应该:
from scripts.generator import JmxGenerator
generator = JmxGenerator()
# 从 OpenAPI 文档生成
xml = generator.generate_from_openapi(
"openapi.yaml",
test_plan_name="API Test Plan",
num_threads=10,
ramp_time=5,
loops=1
)
# 保存为 JMX 文件
generator.save_jmx("test_plan.jmx")
from scripts.generator import JmxGenerator
generator = JmxGenerator()
# 从 Markdown 文档生成
xml = generator.generate_from_markdown(
"api_doc.md",
test_plan_name="API Test Plan",
num_threads=10,
ramp_time=5,
loops=1
)
# 保存为 JMX 文件
generator.save_jmx("test_plan.jmx")
当用户直接粘贴 curl 命令、浏览器 DevTools 抓取的 HTTP 请求/响应、或 Postman Collection JSON 时:
references/natural_input.md 中的规则,将原始数据解析为 endpoints.json 格式endpoints.jsongenerate_jmx.py 生成 JMX 文件# AI 解析完成后,使用 CLI 生成
python scripts/generate_jmx.py --input endpoints.json --output test.jmx
# 性能测试场景
python scripts/generate_jmx.py --input endpoints.json --output perf.jmx --threads 50 --ramp 30 --loops 5
也可以通过 Python API 调用:
import json
from scripts.generator import JmxGenerator
# 加载 AI 生成的 endpoints.json
with open("endpoints.json") as f:
endpoints_data = json.load(f)
generator = JmxGenerator()
xml = generator.generate_from_endpoints(
endpoints_data,
num_threads=10, # CLI 参数优先于 JSON 中的值
ramp_time=5,
loops=3
)
generator.save_jmx("test_plan.jmx")
支持的文档内容:
支持常见的 Markdown API 文档格式:
格式1:
## 接口名称
**接口地址**:`/api/users`
**请求方式**:`GET`
格式2:
### GET /api/users
格式3:
## API 名称
**URL**: `/api/users`
**Method**: `GET`
格式4:
### 接口名称
**接口URL**
> /api/users
**请求方式**
> GET
直接粘贴 curl 命令:
curl -X POST 'https://api.example.com/api/users' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token123' \
-d '{"name": "John", "email": "[email protected]"}'
从浏览器 DevTools 或抓包工具复制的原始 HTTP 数据:
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
{"name": "John"}
HTTP/1.1 201 Created
Content-Type: application/json
{"id": 42, "name": "John"}
Postman 导出的 JSON 文件(包含 info 和 item 字段)。
HTTP 请求
请求参数
响应断言
参数化
${variable_name} 引用变量性能测试配置
监听器
数据驱动(可通过手动添加)
生成的 JMX 文件是标准的 XML 格式,可以直接在 Apache JMeter 中打开和执行。
文件结构:
TestPlan
└── ThreadGroup (每个 API 端点一个线程组)
└── HTTPSamplerProxy (HTTP 请求)
├── HeaderManager (请求头)
├── ResponseAssertion (响应断言)
└── Listeners (监听器)
加载 JMX 格式说明 获取详细的 JMX 文件格式和元素说明。
加载 测试模式说明 获取测试用例生成规则和最佳实践。
主生成器类,提供:
generate_from_openapi() - 从 OpenAPI 文档生成generate_from_markdown() - 从 Markdown 文档生成generate_from_endpoints() - 从 endpoints 数据字典生成(自然语言模式入口)save_jmx() - 保存 JMX 文件CLI 脚本,从 endpoints.json 文件生成 JMX:
--input - endpoints.json 文件路径(必填)--output - 输出 JMX 文件路径(必填)--name/--threads/--ramp/--loops - 可选覆盖配置API 文档解析器,支持:
JMX XML 构建器,提供:
create_test_plan() - 创建测试计划add_thread_group() - 添加线程组add_http_request() - 添加 HTTP 请求add_response_assertion() - 添加响应断言add_json_path_assertion() - 添加 JSON 路径断言add_listener() - 添加监听器add_csv_data_set_config() - 添加 CSV 数据集配置JMX 格式说明文档,包括:
测试模式说明文档,包括:
自然语言输入 AI 解析规则文档,包括:
from scripts.generator import JmxGenerator
generator = JmxGenerator()
xml = generator.generate_from_openapi("openapi.yaml")
generator.save_jmx("api_test.jmx")
generator = JmxGenerator()
xml = generator.generate_from_openapi(
"openapi.yaml",
test_plan_name="Performance Test",
num_threads=50,
ramp_time=30,
loops=5
)
generator.save_jmx("performance_test.jmx")
generator = JmxGenerator()
xml = generator.generate_from_markdown("api_doc.md")
generator.save_jmx("api_test.jmx")
pyyaml(pip install pyyaml),见 requirements.txt生成 JMX 文件后,您可以:
<name>.jmx(JMeter 测试计划,标准 XML 格式)endpoints.json(自然语言输入模式的中间产物,可选保留)npx claudepluginhub winhok/testkit --plugin testkitSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.