多协议模拟工具

mockd是一个单一二进制、无依赖的CLI工具,支持HTTP、gRPC、GraphQL、WebSocket、MQTT、SSE和SOAP等多种协议的模拟,适用于开发测试和数字孪生构建。

  • by getmockd
  • Go
  • 本地部署
  • 151 星标
  • 更新于
在 GitHub 查看 getmockd/mockd

使用说明

One binary. Seven protocols. Zero dependencies.

Mock HTTP, gRPC, GraphQL, WebSocket, MQTT, SSE, and SOAP from a single CLI tool.
Import OpenAPI specs. Build digital twins. Let AI agents create mocks for you.

Website · Docs · Samples · Contributing


快速开始

# Install
curl -sSL https://get.mockd.io | sh

# Start + create a stateful CRUD API in one command
mockd start
mockd add http --path /api/users --stateful users

# It works immediately
curl -X POST localhost:4280/api/users -d '{"name":"Alice","email":"alice@test.com"}'
# → {"id":"a1b2c3","name":"Alice","email":"alice@test.com"}

curl localhost:4280/api/users
# → {"data":[{"id":"a1b2c3","name":"Alice","email":"alice@test.com"}],"meta":{"total":1}}
More install options
brew install getmockd/tap/mockd                                          # Homebrew
docker run -p 4280:4280 -p 4290:4290 ghcr.io/getmockd/mockd:latest      # Docker
go install github.com/getmockd/mockd/cmd/mockd@latest                    # Go

Linux、macOS和Windows的预构建二进制文件 发布 页面。

为什么嘲笑?

其他所有模拟工具都让你做出选择:选择一个协议,安装一个运行时,附加扩展。莫克没有。

mockd WireMock Mockoon Prism MockServer Beeceptor json服务器
单二进制,无运行时 ✅ ❌ JVM ❌ 电子 ✅ ❌ JVM ❌ 软件即服务❌ 节点
内置全部9种协议 ✅ 🔌 Ext 部分 仅HTTP 仅HTTP 部分 仅REST
混沌剖面图+断路器 ✅ ⚠️ 云 ❌ ❌ ❌ ❌ ❌
MCP服务器 ✅ 本地 ⚠️ 云 ❌ ❌ ❌ ⚠️ 云,团队+ ❌
免费+自住,无限制 ✅ ✅ ✅ ✅ ✅ 50次/天 ✅

🔌 Ext =需要单独的扩展JAR•⚠️ 云 =仅在付费/托管层

Full capability matrix (deployment, protocols, capabilities, imports/exports, pricing)

部署

mockd WireMock Mockoon Prism MockServer Beeceptor json服务器
本机单二进制 ✅ 去吧❌ ❌ ✅ ❌ ❌ ❌
需要运行时 无 JVM 电子/节点 可选节点 JVM n/a(SaaS) 节点
Docker镜像 ✅ ✅ ✅ CLI ✅ ✅ ⚠️ 企业 ❌
托管SaaS产品 路线图 WireMock Cloud Mockoon Cloud Stoplight ❌ ✅ ❌

协议支持

mocked WireMock OSS Mockoon Prism MockServer Beeceptor json服务器
REST/HTTP ✅ ✅ ✅ ✅ ✅ ✅ ✅
gRPC ✅ 🔌 外部 ❌ ❌ ❌ ✅ ❌
GraphQL ✅ 🔌 外部 ❌ ❌ ❌ ✅ ❌
WebSocket ✅ 🔌 Ext(测试版) ✅ ❌ ❌ ❌ ❌
MQTT ✅ ❌ ❌ ❌ ❌ ❌ ❌
上海证券交易所✅ ❌ ❌ ❌ ❌ ❌ ❌
SOAP(WSDL) ✅ ❌ 部分 ❌ 部分 ✅ ❌
mTLS ✅ ✅ 部分 ❌ ✅ ✅ ❌
OAuth流程 ✅ ❌ ❌ ❌ ❌ ❌ ❌

能力

mocked WireMock OSS Mockoon Prism MockServer Beeceptor json服务器
有状态的CRUD ✅ ❌ ✅ 部分 ❌ ✅ ✅
多步有状态流 ✅ ✅ 场景 部分 ❌ 部分 ✅ ❌
故障注入(延迟、错误) ✅ ✅ ✅ ❌ ✅ ✅ ❌
混沌剖面 ✅ ⚠️ 云 ❌ ❌ ❌ ❌ ❌
断路器 ✅ ⚠️ 云 ❌ ❌ ❌ ❌ ❌
带宽限制 ✅ ❌ ❌ ❌ ❌ 路线图 ❌
管理员REST API ✅ ✅ 仅限CLI ❌ ✅ ✅ 部分
内置网络仪表板 ✅ ⚠️ 云 ⚠️ 云 ❌ ✅ 只读 ✅ ❌
本机桌面GUI ❌ ❌ ✅ 电子 ❌ ❌ ❌ ❌
MCP服务器 ✅ 本地 ⚠️ 云 ❌ ❌ ❌ ⚠️ 云团队+ ❌
云隧道共享 ✅ ❌ ⚠️ 云 ❌ ❌ ✅ ❌

进口/出口

mocked WireMock OSS Mockoon Prism MockServer Beeceptor json服务器
OpenAPI导入 ✅ ⚠️ 云 ✅ ✅ ✅ ✅ ❌
邮递员导入 ✅ ⚠️ 云 ❌ ✅ ❌ ❌ ❌
进口 ✅ ❌ ❌ ❌ ❌ ❌ ❌
WSDL导入 ✅ ❌ ❌ ❌ ❌ ✅ ❌
cURL导入 ✅ ❌ ❌ ❌ ❌ ❌ ❌
WireLock格式导入 ✅ 本地 ❌ ❌ ❌ ❌ ❌
模拟格式导入 ✅ ❌ 本地 ❌ ❌ ❌ ❌
HAR出口 ✅ ✅ ❌ ❌ ✅ ✅ ❌

免费等级限制

请求 模拟规则 成本
mocked 无限 无限制 免费(Apache 2.0)
WireMock OSS 无限 无限制 免费(Apache 2.0)
模拟桌面/CLI 无限 无限 免费(MIT)
Prism 无限 无限 免费(Apache 2.0)
MockServer 无限 无限制 免费(Apache 2.0)
Beeceptor免费套餐 50美元/天/终点 3美元/月+更多
json服务器 无限 无限 免费(MIT)

传说: ✅ 内置•🔌 Ext=单独的OSS扩展⚠️ 云=仅在付费/托管层•部分=有限实施•路线图=在项目规定的路线图上,尚未发货

关于WireLock导入的说明。 这 ⚠️ Cloud OpenAPI和Postman导入上的标记反映了第一方WireLock功能。社区转换器存在(例如。 openapi-to-wiremock,OpenAPI生成器目标),但不与OSS独立JAR捆绑在一起。

数字双胞胎

导入一个真实的API规范,将其绑定到有状态表,并获得一个传递真实SDK的mock:

# mockd.yaml — Stripe digital twin
version: "1.0"
imports:
  - path: stripe-openapi.yaml
    as: stripe
tables:
  - name: customers
    idStrategy: prefix
    idPrefix: "cus_"
    seedData:
      - { id: "cus_1", name: "Acme Corp", email: "billing@acme.com" }
extend:
  - { mock: stripe.GetCustomers, table: customers, action: list }
  - { mock: stripe.PostCustomers, table: customers, action: create }
  - { mock: stripe.GetCustomersCustomer, table: customers, action: get }
  - { mock: stripe.PostCustomersCustomer, table: customers, action: update }
  - { mock: stripe.DeleteCustomersCustomer, table: customers, action: delete }
mockd start -c mockd.yaml --no-auth
curl -X POST localhost:4280/v1/customers -d "name=Test&email=test@corp.com"
# → {"id":"cus_a1b2c3","object":"customer","name":"Test","email":"test@corp.com"}

经过真实SDK验证:

  • 条纹: 49/49 stripe-go SDK测试通过
  • 提里奥: 13/13 twilio-go SDK测试通过
  • OpenAI: openai Python SDK已验证(模型、助手、聊天完成)

看 模拟样品 用于完整的数字孪生配置。

人工智能原生(MCP)

mocked包含一个内置 模型上下文协议 服务器与 18工具.AI代理可以创建模拟、管理状态、导入规范和验证合约,而无需接触CLI:

{
  "mcpServers": {
    "mockd": { "command": "mockd", "args": ["mcp"] }
  }
}

适用于Claude Desktop、Cursor、Windsurf和任何兼容MCP的编辑器。工具包括模拟CRUD、有状态资源、混沌注入、请求日志、验证、工作区和导入/导出。

特性

Multi-Protocol Mocking — 7 protocols, unified CLI
协议 端口 示例
HTTP/HTTPS 4280 mockd add http --path /api/hello --body '{"msg":"hi"}'
gRPC 50051 mockd add grpc --proto svc.proto --service Greeter --rpc-method Greet
GraphQL 4280 mockd add graphql --path /graphql --operation hello
websocket 4280 mockd add websocket --path /ws --echo
MQTT 1883年 mockd add mqtt --topic sensors/temp --payload '{"temp":72}'
东南偏南 4280 mockd add http --path /events --sse --sse-event 'data: hello'
肥皂 4280 mockd add soap --path /soap --operation GetWeather --response '<OK/>'
Import & Export — OpenAPI, Postman, HAR, WireMock, cURL, WSDL
mockd import openapi.yaml           # OpenAPI 3.x / Swagger 2.0
mockd import collection.json        # Postman collections
mockd import recording.har          # HAR files
mockd import wiremock-mapping.json  # WireMock stubs
mockd import service.wsdl           # WSDL → SOAP mocks
mockd import "curl -X GET https://api.example.com/users"  # cURL commands
mockd export --format yaml > mocks.yaml
Chaos Engineering — latency, errors, circuit breakers
mockd chaos apply flaky       # 30% error rate
mockd chaos apply slow-api    # 200-800ms latency
mockd chaos apply offline     # 100% 503 errors
mockd chaos disable
Cloud Tunnel — share local mocks instantly
mockd tunnel
# → https://a1b2c3d4.tunnel.mockd.io → http://localhost:4280

所有7个协议都通过端口443上的单个安全连接进行多路复用。在NAT和防火墙后工作。

Workspaces — isolated mock environments
mockd workspace create -n "Payment API" --use
mockd import stripe-openapi.yaml
mockd workspace create -n "Comms API" --use
mockd import twilio-openapi.yaml
# Mocks, state, and logs are fully isolated per workspace
Proxy Recording — record real traffic, replay as mocks
mockd proxy start --port 8888
# Configure your app to use http://localhost:8888 as proxy
# Traffic is recorded, then replay with:
mockd import recordings/session.json
Web Dashboard — manage mocks visually

发布版本从管理端口提供web UI(http://localhost:4290).VS代码样式编辑器、命令面板、带文件夹的模拟树、请求日志查看器和未遂调试。

模拟云

mocked完全脱机工作,无需帐户。对于想要共享环境的团队:

  • 持久云模拟 --部署整个团队都可以攻击的模拟环境
  • 团队管理 --具有访问控制的共享工作区
  • 云隧道 --具有自定义域的经过身份验证的隧道

马上就来。 加入候补名单.

文档

完整指南、API参考资料和配置文档位于 docs.mockd.io.

贡献

欢迎投稿!看 贡献.md 用于设置。

许可证

Apache许可证2.0 --免费用于商业用途。