mockserver-monorepo: API 依存関係のシミュレーションとカオスエンジニアリングを実行するマルチプロトコルモックサーバーとプロキシ

mockserver-monorepo: API 依存関係のシミュレーションとカオスエンジニアリングを実行するマルチプロトコルモックサーバーとプロキシ

解決する課題

MockServer は、外部 API に依存するアプリケーションを、実際のシステムが利用可能である必要がなく、完全である必要も安定している必要もなくテストできる方法を提供します。利用できない依存関係による開発のボトルネックを防ぎ、ネットワーク障害や遅延応答といった実環境では再現が難しいエッジケースをシミュレートできるようにします。

仕組み

MockServer は HTTP(S) サーバー兼プロキシとして動作し、REST コントロールプレーンで設定できます。ネットワークトラフィックをインターセプトし、主に以下の 3 つの機能を提供します。

  1. モッキング: 受信リクエスト(メソッド、パス、ヘッダー、ボディ等)にマッチし、事前に設定されたレスポンスを返します。
  2. プロキシ: 実際のトラフィックを宛先へ転送し、ユーザーは「プロキシブレークポイント」(デバッガに似た機能)を使ってリクエストとレスポンスを記録・検査・変更できます。
  3. カオスエンジニアリング: 意図的に遅延、接続切断、エラーを注入し、システム劣化時のアプリケーションの挙動をテストします。

HTTP/1.1、HTTP/2、gRPC、WebSocket、RAW TCP など幅広いプロトコルをサポートし、OpenAI、Anthropic、Gemini などの AI/LLM チャット完了 API 用の特殊モッキングも含みます。

対象ユーザー

統合テストやエンドツーエンドテストで外部依存からアプリケーションを切り離す必要があるソフトウェア開発者および QA エンジニア向けに設計されています。

ハイライト

  • 広範なプロトコルサポート: HTTP、gRPC、WebSocket、Kafka や MQTT などのメッセージブローカーを扱えます。
  • AI/LLM モッキング: 主要プロバイダーのストリーミングチャット完了 API のモッキングと、AI コーディングアシスタント用 MCP サーバーを内蔵。
  • 動的レスポンス: Velocity、Mustache、JavaScript を用いたレスポンステンプレートに対応。
  • OpenAPI 連携: OpenAPI/Swagger 仕様から直接期待値を生成可能。
  • カオステスト: 障害や遅延を注入するツールでレジリエンステストを実施。
  • マルチプラットフォームデプロイ: Docker、Kubernetes(Helm)、JAR、各種言語クライアント(Java、Python、Node、Go など)で利用可能。

Sources