mock-server/mockserver-monorepo

MockServer is an HTTP(S) mock server and proxy for testing that lets you mock APIs, inspect and modify live traffic, and inject failures. It supports HTTP/1.1, HTTP/2, gRPC, WebSockets, TCP and more on a single port, with additional support for HTTP/3, message brokers, and AI/LLM APIs.

MockServer – 多功能模拟、代理和混沌工程服务器

是什么 – MockServer 是一个自包含的 HTTP(S) 服务器,也可作为代理使用。它允许您 定义预期(规则)以处理传入请求,并返回您需要的任何响应,而无需运行真实的下游服务。它还能记录真实流量,实时编辑,并故意注入故障(延迟、断开连接、错误代码),以测试应用程序的韧性。

对 AI/ML 项目的重要性 – 现代 AI 服务(LLM 聊天完成 API、向量存储后端、数据流水线端点等)通常通过 HTTP/gRPC 访问。在开发过程中,您通常需要一个稳定、可控的替代服务,特别是当:

  • 真实服务受速率限制、成本高或尚未部署。
  • 您想测试错误处理、超时或格式错误的响应。
  • 您需要重放记录的请求/响应流程以实现可复现的 CI 测试。
  • 您正在构建与 OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI、Ollama 或自定义 MCP 基础的编码助手交互的 AI 应用程序 – MockServer 可以模拟这些端点,包括流式响应。

核心功能(如 README 所述)

功能 可实现的操作
多协议支持 支持 HTTP/1.1、HTTPS、HTTP/2、实验性 HTTP/3(QUIC)、gRPC、gRPC-Web、WebSockets、原始 TCP、JSON-RPC,甚至 Kafka 和 MQTT 等消息代理协议 – 所有协议均通过连接的前几个字节自动检测。
模拟 基于方法、路径、查询、头、Cookie 和正文(JSON、XML、JSONPath、XPath、正则表达式、OpenAPI)定义预期。可返回静态正文、模板化响应(Velocity、Mustache、JavaScript),或调用自定义回调/Webhook。
代理与记录 转发真实流量,捕获请求/响应,检查 TLS 加密流量,并在交互式断点处暂停以编辑或中止请求 – 本质上是网络流量的调试器。
混沌工程 注入延迟、慢速或断开连接、错误状态码,以观察系统在故障条件下的行为。
LLM / AI 模拟 内置对热门聊天完成 API(OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI、Ollama)的支持,包括流式模式,以及用于 AI 编码助手集成的 MCP 服务器。
验证 测试运行后,可断言特定请求是否被接收、接收顺序及次数。
实时仪表板 /mockserver/dashboard 提供实时 UI,显示预期、接收的请求和日志。
客户端库 官方支持 Java、JavaScript/Node、Python、Ruby、Go、PHP、.NET 和 Rust 客户端,以及 JUnit、Spring 和 Testcontainers 集成。
部署选项 可作为 Docker 容器运行,通过 Homebrew(mockserver CLI)安装,作为普通 JAR/WAR 运行,使用官方 Helm 图表在 Kubernetes 上部署,或直接在单元测试中嵌入基于 Netty 的服务器。

典型工作流程(60 秒快速入门)

  1. 启动 服务器(docker run -d -p 1080:1080 mockserver/mockserver)。
  2. 创建预期 通过向控制平面端点 /mockserver/expectation 发送简单的 curl POST 请求 – 例如,将 GET /hello 映射为返回“Hello World”的 200 响应。
  3. 调用 模拟的端点(curl http://localhost:1080/hello)并接收配置的响应。

所有这些操作均可脚本化,由 CI 流水线驱动,或通过 Postman、Bruno 或社区构建的 React 管理 UI 等工具管理。

在 AI 开发流水线中的使用方式

  • 单元/集成测试 用于调用 OpenAI 的 /v1/chat/completions 的代码 – 用 MockServer 预期替换真实服务,返回确定性 JSON 负载或流式块序列。
  • 性能/韧性测试 – 对每个 LLM 请求注入 5 秒延迟,观察前端如何处理慢响应。
  • 录制与回放 – 从生产 LLM 网关捕获真实流量,然后在本地回放以进行调试。
  • 契约验证 – 从您自己的 AI 微服务的 OpenAPI 规范自动生成预期,并验证实现是否符合规范。

安装与生态系统

  • Dockerdocker run -d --rm -p 1080:1080 mockserver/mockserver
  • Homebrewbrew install mockserver && mockserver run --port 1080
  • Kubernetes – Helm 图表 mockserver/mockserver(OCI 托管)用于集群部署。
  • 语言客户端 – Maven/Gradle 资产(mockserver-netty-no-dependenciesmockserver-client-java 等)、NPM 包(mockserver-nodemockserver-client)、PyPI(mockserver-client)、RubyGems、Go 模块、NuGet 和 crates.io。

项目健康状况 – 活跃维护中(最新版本 7.6.0 于 2026 年 6 月发布),CI 通过 Buildkite,开放问题追踪器,讨论论坛,GitHub 上的路线图项目。需要 Java 17+(或 Docker 镜像自带运行时)。


总结 – MockServer 是一个生产级、协议无关的模拟和代理服务器,可轻松模拟、记录和压力测试任何基于 HTTP 的 API,包括快速增长的 LLM 聊天完成服务家族。它是构建、测试或基准测试 AI 增强型应用程序的可靠工具。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目