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 的依赖项(HTTP/1、HTTP/2、HTTPS、gRPC、WebSockets、原始 TCP,甚至实验性的 HTTP/3)。它还可以充当代理,记录真实流量、注入延迟或错误,并即时重写请求。

为什么对 AI/ML 项目很重要 – 现代 AI 服务(OpenAI、Anthropic、Gemini、Bedrock、Azure OpenAI、Ollama 等)通过 HTTP API 访问。MockServer 允许您为这些端点启动本地替代品,从 OpenAPI 规范生成响应,甚至使用模板化或回调驱动的回复来模拟聊天补全 API。这使集成测试快速、确定性且安全 – 无需在 CI 期间访问真实的付费模型。

主要功能

  • 协议无关端口 – 单个监听端口自动检测 HTTP、HTTPS、HTTP/2、gRPC、gRPC-Web、WebSockets、原始 TCP 和实验性 HTTP/3。
  • 模拟、代理或两者兼有 – 定义静态预期,使用模板/回调,或作为记录和修改实时流量的转发代理运行。
  • 混沌工程 – 注入延迟、断开连接或强制错误响应以测试韧性。
  • AI 专用模拟 – 内置对主要 LLM 聊天补全 API 的支持,包括流式响应。
  • 规范驱动生成 – 导入 OpenAPI/Swagger 文件并自动创建请求匹配的预期。
  • 多语言客户端库 – Java、Node、Python、Ruby、Go、.NET、Rust、PHP,以及 JUnit 和 Spring 测试辅助工具。
  • 部署灵活性 – Docker、Helm/Kubernetes、普通 JAR/WAR、无 JVM 二进制文件、Homebrew CLI、Testcontainers,或作为 Maven/Gradle 依赖项。
  • 仪表板与 MCP 集成 – 用于实时检查的 Web UI 和 Model-Context-Protocol (MCP) 服务器,以便 AI 编码助手可以直接驱动 MockServer。

60 秒入门

# Docker(最常见)
docker run -d --rm -p 1080:1080 mockserver/mockserver
# 定义简单预期
curl -X PUT http://localhost:1080/mockserver/expectation \
  -H 'Content-Type: application/json' \
  -d '{"httpRequest":{"method":"GET","path":"/hello"},"httpResponse":{"statusCode":200,"body":"Hello World"}}'
# 调用模拟
curl http://localhost:1080/hello   # → Hello World

您也可以通过 Homebrew 安装 mockserver CLI,然后运行 mockserver run --port 1080。

AI/ML 开发者的典型用例

  1. LLM 调用代码的单元/集成测试 – 用返回固定 JSON 负载或流式块的确定性模拟替换真实的 OpenAI 端点。
  2. 契约测试 – 从提供商的 OpenAPI 规范生成预期,并验证您的客户端遵守契约。
  3. 性能与韧性测试 – 使用混沌功能模拟云托管 AI 服务中常见的延迟峰值或断连。
  4. 本地开发 – 在笔记本电脑上运行 Docker 镜像或二进制文件,避免网络延迟和 API 密钥泄露。
  5. 端到端 CI 流水线 – 在 GitHub Actions、GitLab CI 或 Jenkins 中启动 MockServer 容器,运行测试套件,然后丢弃容器。

安装选项

渠道 命令
Docker docker run -d --rm -p 1080:1080 mockserver/mockserver
GHCR Docker docker run -d --rm -p 1080:1080 ghcr.io/mock-server/mockserver
Homebrew (macOS/Linux) brew install mockserver
Helm (K8s) helm upgrade --install --namespace mockserver mockserver oci://ghcr.io/mock-server/charts/mockserver
Maven (Java) org.mock-server:mockserver-netty-no-dependencies
npm (Node) mockserver-node
PyPI (Python) mockserver-client
RubyGems mockserver-client
Cargo (Rust) mockserver-client
NuGet (.NET) MockServerClient

社区与支持 – 活跃的 GitHub Issues、Discussions、公开路线图以及各种客户端 SDK。该项目还提供了基于 React 的管理 UI(MockServer Browser Admin)来可视化地管理预期。


底线 – MockServer 是一个成熟、语言无关的测试工具,天然适合需要对外部基于 HTTP 的服务(尤其是 LLM API)进行桩化、录制或压力测试的 AI/ML 工作流程。

相关

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