mockserver-monorepo:一個多協議的模擬伺服器與代理,用於模擬 API 依賴與執行混沌工程
mockserver-monorepo:一個多協議的模擬伺服器與代理,用於模擬 API 依賴與執行混沌工程
它解決了什麼問題
MockServer 提供了一種測試依賴外部 API 的應用程式的方法,無需實際系統可用、完整或穩定。它避免了因依賴不可用而造成的開發瓶頸,並允許開發者模擬邊緣情況,例如網路失敗或回應緩慢,這些情況在真實環境中難以重現。
它如何運作
MockServer 充當一個 HTTP(S) 伺服器與代理,透過 REST 控制平面進行設定。它會攔截網路流量並執行三項主要功能:
- 模擬:根據方法、路徑、標頭、主體等匹配傳入請求,並回傳預先配置的回應。
- 代理:將真實流量轉發至目的地,讓使用者在傳輸過程中使用類似除錯器的「代理斷點」來記錄、檢查與修改請求與回應。
- 混沌工程:故意注入延遲、斷線或錯誤,以測試應用程式在系統退化時的處理方式。
它支援廣泛的協議,包括 HTTP/1.1、HTTP/2、gRPC、WebSockets 以及原始 TCP,並包含針對 AI/LLM 聊天完成 API(如 OpenAI、Anthropic、Gemini)的專屬模擬功能。
目標對象
此工具設計給需要在整合測試與端對端測試期間,將應用程式與外部依賴隔離的軟體開發人員與 QA 工程師。
重點特色
- 廣泛的協議支援:支援 HTTP、gRPC、WebSockets,以及 Kafka、MQTT 等訊息中介。
- AI/LLM 模擬:內建對主要供應商的串流聊天完成 API 的模擬,並提供 AI 程式碼助理的 MCP 伺服器。
- 動態回應:支援使用 Velocity、Mustache 與 JavaScript 進行回應模板化。
- OpenAPI 整合:可直接從 OpenAPI/Swagger 規格產生期望。
- 混沌測試:提供注入失敗與延遲的工具,以進行韌性測試。
- 多平台部署:提供 Docker、Kubernetes(Helm)、JAR 以及各種語言客戶端(Java、Python、Node、Go 等)版本。
Sources
- undefinedmock-server/mockserver-monorepo