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 통합 – 실시간 검사를 위한 웹 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 워크플로우에 자연스럽게 맞는 성숙하고 언어에 구애받지 않는 테스트 도구입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트