Communitygithub.com

cli-anything-wiremock

用于 WireMock HTTP 模拟服务器管理的 Python CLI 工具

cli-anything-wiremock 是什么?

cli-anything-wiremock 是一个命令行界面工具,它封装了 WireMock 管理 REST API(`/__admin/`)。它允许开发者和 AI 代理从终端或代理工具调用中管理 HTTP 桩映射、检查已处理的请求、控制有状态场景并录制真实后端流量。该工具支持所有常见的 WireMock 操作,包括创建、列出和删除桩;检查匹配和不匹配的请求;管理场景状态;以及记录来自真实后端的流量。它专为集成测试和自动化工作流设计,支持 `--json` 输出以便于脚本和 AI 代理解析,并通过环境变量配置连接参数。该工具可在任何支持 Python 的平台上与 WireMock 实例配合使用,是测试自动化工作流的理想选择。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HKUDS/CLI-Anything/tree/main/skills/cli-anything-wiremock

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

概述

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}]'

# 使用完整 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

测试验证的工作流模式

  1. 在运行被测系统之前设置桩:
    cli-anything-wiremock --json stub quick POST /api/payment 200 --body '{"success":true}'
    
  2. 运行被测系统。
  3. 验证交互:
    cli-anything-wiremock --json request count '{"method":"POST","url":"/api/payment"}'
    
  4. 清理:
    cli-anything-wiremock reset
    

错误处理

所有错误均返回非零退出码。在 --json 模式下,错误返回 {"status": "error", "message": "..."}。成功时返回原始 WireMock API 响应。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

cli-anything-adguardhome

>-

cli-anything-anygen

>-

cli-anything-audacity

>-

cli-anything-blender

>-

cli-anything-browser

Browser automation CLI using DOMShell MCP server. Maps Chrome

cli-anything-calibre

>-

cli-anything-ccswitch

CLI interface for CC Switch — manage AI coding tool configurations from the terminal

cli-anything-chromadb

>-

cli-anything-cloudanalyzer

Command-line interface for CloudAnalyzer — Agent-friendly harness for CloudAnalyzer, a QA platform for mapping, localization, and perception outputs. Supports 27 commands across 8 groups: point cloud evaluation, trajectory evaluation, ground segmentation QA, config-driven quality gates, baseline evolution, processing, visualization, and interactive REPL.

cli-anything-cloudcompare

Command-line interface for CloudCompare — Agent-friendly harness for CloudCompare, the open-source 3D point cloud and mesh processing software. Supports 41 commands across 9 groups: project management, session control, point cloud operations (subsample, filter, segment, analyze), mesh operations, distance computation (C2C, C2M), transformations (ICP, matrix), export (LAS/LAZ/PLY/PCD/OBJ/STL/E57), and interactive REPL.

cli-anything-comfyui

>-

cli-anything-dify-workflow

Wrapper for the Dify workflow DSL CLI. Create, inspect, validate, edit, and export Dify workflow files through a CLI-Anything harness.

cli-anything-drawio

>-

cli-anything-eez-studio

Use EEZ Studio from the command line: inspect and modify native .eez-project files, edit LVGL screens/widgets, manage SCPI commands, and invoke the real EEZ Studio backend for LVGL builds.

cli-anything-eth2-quickstart

>-

cli-anything-exa

>-

cli-anything-firefly-iii

Firefly III CLI - Personal finance management via CLI-Anything

cli-anything-freecad

Complete CLI harness for FreeCAD parametric 3D CAD modeler (258 commands). Covers ALL workbenches: Part (29 primitives + boolean + mirror + loft + sweep), Sketcher (26 cmds: geometry + constraints + editing), PartDesign (38 cmds: pad/pocket/groove/fillet/chamfer/patterns/hole/datum), Assembly (11 cmds), Mesh (16 cmds), TechDraw (15 cmds: views + dimensions + PDF/SVG), Draft (33 cmds: 2D shapes + arrays + transforms), FEM (12 cmds), CAM/CNC (10 cmds), Surface (6 cmds), Spreadsheet (7 cmds), Import (13 formats), Export (17 formats), Measure (12 cmds), Materials (21 presets). Headless FreeCAD export to STEP/IGES/STL/OBJ/DXF/PDF/glTF/3MF.

cli-anything-gimp

>-

cli-anything-godot

>-

相关技能