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と、AIコーディングアシスタントがMockServerを直接操作できるModel-Context-Protocol(MCP)サーバー。
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開発者向けの典型的なユースケース
- LLM呼び出しコードの単体/統合テスト – 実際のOpenAIエンドポイントを、固定JSONペイロードを返すかチャンクをストリーミングする決定論的なモックに置き換えます。
- コントラクトテスト – プロバイダーのOpenAPI仕様から期待値を生成し、クライアントがコントラクトを尊重していることを確認します。
- パフォーマンスとレジリエンステスト – カオス機能を使用して、クラウドホスト型AIサービスでよく発生するレイテンシのスパイクや接続切断をシミュレートします。
- ローカル開発 – ノートパソコンでDockerイメージまたはバイナリを実行し、ネットワークレイテンシとAPIキーの漏洩を回避します。
- エンドツーエンド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ワークフローに自然にフィットする、成熟した言語非依存のテストツールです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト