用途
cli-anything-wiremock 是一个命令行界面工具,用于管理 WireMock HTTP 模拟服务器。它封装了 WireMock 的 Admin REST API(/__admin/),使智能体和开发者能够从终端或智能体工具调用中管理 HTTP 桩映射、检查已处理的请求、控制有状态场景,以及录制真实后端流量。WireMock 通常用于集成测试环境,以可控的模拟响应替代真实 HTTP 后端。
主要能力
该工具按命令组组织功能:
stub — 管理 HTTP 桩映射
- stub list:列出所有已注册的桩
- stub get <id>:按 UUID 获取特定桩的详情
- stub create <json>:从 JSON 字符串创建桩
- stub quick M URL S:快速创建桩,参数为 METHOD URL STATUS_CODE
- stub delete <id>:按 UUID 删除桩
- stub reset:将所有桩重置为磁盘上的默认值
- stub save:将内存中的桩持久化到磁盘
- stub import <file>:从 JSON 文件导入桩
request — 检查已处理的请求
- request list:列出最近的已处理请求
- request find <pattern>:查找匹配 JSON 模式的请求
- request count <pattern>:统计匹配 JSON 模式的请求数量
- request unmatched:列出未匹配任何桩的请求(404)
- request reset:清空请求日志
scenario — 有状态场景管理
- scenario list:列出所有场景及当前状态
- scenario set N S:将场景 NAME 设置为 STATE
- scenario reset:将所有场景重置为初始状态
record — 录制真实后端流量
- record start <url>:开始代理并录制到 TARGET_URL
- record stop:停止录制,返回捕获的桩
- record status:检查当前是否正在录制
- record snapshot:将内存中的请求快照为桩
settings — 全局服务器设置
- settings get:获取当前全局 WireMock 设置
- settings version:显示 WireMock 服务器版本
顶层命令
- status:检查 WireMock 是否正在运行
- reset:完全重置:桩 + 请求 + 场景
- shutdown:优雅关闭 WireMock 服务器
使用方式
关键示例:
检查连通性:
cli-anything-wiremock status
使用快速表单创建桩:
cli-anything-wiremock stub quick GET /api/users 200 --body '[{"id":1}]'
使用完整 JSON 创建桩:
cli-anything-wiremock stub create '{
"request": {"method": "POST", "url": "/api/orders"},
"response": {"status": 201, "body": "{\"id\":99}"}
}'
验证 POST 请求恰好被调用一次:
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/orders"}'
# → {"count": 1}
场景:推进状态:
cli-anything-wiremock scenario set "cart-flow" "item-added"
录制真实后端:
cli-anything-wiremock record start https://api.example.com
# ... 发起请求 ...
cli-anything-wiremock record stop
智能体使用指引
在智能体场景中始终使用 --json。在脚本或智能体工具调用中,所有调用都应使用 --json。JSON 输出因命令类型而异(这些是不同的响应类型,并非包装所有响应的统一信封):
数据命令直接返回原始 WireMock API JSON:
cli-anything-wiremock --json stub quick GET /api/hello 200 --body '{"hello":"world"}'
# → {"id": "abc-123", "request": {...}, "response": {...}, ...}
cli-anything-wiremock --json stub list
# → {"mappings": [...], "total": N}
空操作命令(delete、reset、save)返回:
# → {"status": "ok"}
错误返回:
# → {"status": "error", "message": "Connection refused"}
通过环境变量连接
在调用任何命令前,通过环境变量设置连接参数:
export WIREMOCK_HOST=localhost
export WIREMOCK_PORT=8080
测试验证的工作流模式
- 在运行被测系统前设置桩:
cli-anything-wiremock --json stub quick POST /api/payment 200 --body '{"success":true}'
- 运行被测系统。
- 验证交互:
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/payment"}'
- 清理:
cli-anything-wiremock reset
错误处理
所有错误均返回非零退出码。在 --json 模式下,错误返回 {"status": "error", "message": "..."}。成功时返回原始 WireMock API 响应。
适用场景
- 集成测试环境中替代真实 HTTP 后端,提供可控的模拟响应
- 智能体或自动化脚本中管理 WireMock 桩、验证请求交互
- 录制真实后端流量并生成桩,用于后续测试
- 有状态场景测试,模拟多步骤交互流程
限制
资料中未提供关于安装方式、依赖要求、支持平台、收费模式或性能限制的具体信息。