概述
cli-anything-wiremock 是一个命令行界面工具,它封装了 WireMock 管理 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}]'
cli-anything-wiremock stub create '{
"request": {"method": "POST", "url": "/api/orders"},
"response": {"status": 201, "body": "{\"id\":99}"}
}'
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/orders"}'
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 输出因命令类型而异(这些是不同的响应类型,不是包裹所有响应的信封):
cli-anything-wiremock --json stub quick GET /api/hello 200 --body '{"hello":"world"}'
cli-anything-wiremock --json stub list
通过环境变量进行连接
在调用任何命令之前,通过环境变量设置连接参数:
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 响应。