MockServer 是一個在 GitHub 上擁有近 5000 星的開源專案,核心功能是模擬 HTTP(S) 服務並充當代理。它面向的是測試場景——無論是微服務、前後端分離,還是 AI/LLM API 的依賴模擬,都能派上用場。
為什麼測試團隊需要它?
在實際開發中,依賴的外部服務往往不穩定或不方便在 CI 中真實呼叫。MockServer 可以讓你在本地或容器裡快速搭建一個模擬的 API 端點,返回預設的響應,甚至模擬延遲或錯誤。它支援的協議很全:HTTP/1.1、HTTP/2、gRPC、WebSocket、TCP,甚至實驗性的 HTTP/3 和訊息佇列。最特別的是,它能模擬 AI/LLM API(比如 OpenAI 的介面),很適合用來測試 AI 應用的整合邏輯。
代理模式與流量檢視
MockServer 也可以作為反向代理執行,捕獲並檢查真實流量。你可以設定 期望(Expectation):當某個請求匹配條件時,返回特定的響應。它自帶一個 Web UI,能實時檢視請求/響應的明細,對除錯非常有用。此外,還能注入故障(比如超時、500 錯誤),驗證你的應用是否做好了容錯。
一個很典型的場景是:你的應用依賴 GPT-4 API,但測試時不想真的呼叫 API 浪費額度。用 MockServer 模擬 /v1/chat/completions 端點,返回預設的 JSON,就能跑通整合測試。既省了錢,又不會因為網路問題導致測試不穩定。
上手簡單,配置靈活
MockServer 提供多種部署方式:直接下載 JAR 包、Docker 映象、Maven 外掛、Node.js npm 包等。對 Java 專案來說,通過 Maven 依賴引入即可用單元測試的方式啟動。對非 Java 專案,Docker 容器是最便捷的方式。配置期望可以用 JSON、YAML 或 Java API,社羣還提供 MockServer 客戶端 SDK(Java, JavaScript, Ruby 等),讓測試程式碼更簡潔。
開源且免費(Apache 2.0 許可證),沒有隱藏的付費功能。唯一的代價是學習配置規則——雖然文件很全,但初次上手可能需要花點時間理解「預期(Expectation)」的工作機制。
給測試工程師的實用要點
- 善用記錄模式:先跑一次真實呼叫,讓 MockServer 記錄請求和響應,然後基於記錄生成期望,這是最快的方式。
- 注意埠衝突:MockServer 預設監聽 1080 埠,但可以任意配置,確保測試環境埠唯一。
- 與 CI/CD 結合:Docker 化執行比較乾淨,適合在 Jenkins 或 GitLab CI 中啟動。
總的來說,MockServer 是一款成熟且可靠的測試輔助工具。如果你正在為外部服務的依賴測試頭疼,它值得一試。










評論
暫無評論
成為第一個評論的人