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 增強型應用程式的可靠工具。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案