GitHub - keploy/keploy: Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.
Service

GitHub - keploy/keploy: Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.

keploy
2026.03.30
·GitHub·by 배레온/부산/개발자
#AI#API testing#CI/CD#eBPF#testing tools

핵심 포인트

  • 1Keploy는 eBPF를 활용하여 코드 수정 없이 API 호출, 데이터베이스 쿼리, 스트리밍 이벤트를 자동으로 기록하고 재현하여 API 및 통합 테스트를 생성하는 도구입니다.
  • 2이 도구는 HTTP 엔드포인트뿐만 아니라 데이터베이스 및 메시지 큐 등 광범위한 인프라를 가상화하며, AI를 통해 테스트 커버리지를 확장하고 결정론적 테스트 실행을 가능하게 합니다.
  • 3Keploy는 언어 및 프레임워크에 독립적이며, CI/CD 파이프라인에 쉽게 통합되어 개발자가 복잡한 테스트 환경 구축 없이 효율적으로 테스트를 수행할 수 있도록 돕습니다.

Keploy는 실제 사용자 트래픽으로부터 자동으로 테스트와 데이터 목(data-mocks)을 생성하여, 단위 테스트(unit tests)보다 빠르게 높은 테스트 커버리지(test coverage)를 달성하도록 설계된 개발자 중심의 API 및 통합 테스트 도구입니다.

핵심 방법론 (Core Methodology)
Keploy의 핵심은 eBPF(extended Berkeley Packet Filter) 기술을 활용하여 네트워크 계층(network layer)에서 트래픽을 캡처하는 것입니다. 이러한 고유한 접근 방식을 통해 애플리케이션 코드에 어떠한 변경(code changes)도 가하거나 SDK를 통합할 필요 없이, 모든 인바운드 API 호출, 아웃바운드 데이터베이스 쿼리(Postgres, MySQL, MongoDB 등), 스트리밍 이벤트(Kafka, RabbitMQ 등)를 가로챌 수 있습니다. 이는 Keploy를 완전히 'code-less'하고 'language-agnostic'하게 만듭니다.

'record' 단계에서 Keploy는 실제 API 요청과 해당 요청에 대한 모든 외부 종속성(external dependencies)의 응답을 투명하게 캡처합니다. 이렇게 캡처된 데이터는 테스트 케이스와 그에 상응하는 데이터 목으로 저장됩니다. 'replay' 단계에서는 애플리케이션의 아웃바운드 호출을 가로채고, 이전에 기록된 목 응답을 결정론적으로(deterministically) 제공합니다. 이 과정에서 Keploy는 시스템 시간을 고정(time freezing)하여 테스트의 결정론적 재생을 보장함으로써, 외부 요인으로 인한 테스트 실패를 방지하고 일관된 결과를 얻을 수 있도록 돕습니다.

주요 기능 (Key Features)

  • No Code Changes: eBPF 기반의 작동 방식으로, 애플리케이션 코드에 SDK를 추가하거나 수정할 필요 없이 테스트를 생성하고 실행합니다.
  • Record and Replay Complex Flows: 분산 시스템(distributed systems)을 포함한 복잡한 API 흐름을 목(mock)과 스텁(stub)으로 기록하고 재생할 수 있어, 경량 시간 기계(light-weight time machine)처럼 작동합니다.
  • Complete Infra-Virtualization: HTTP 엔드포인트(endpoints) 뿐만 아니라 Postgres, MySQL, MongoDB와 같은 데이터베이스, Kafka, RabbitMQ와 같은 스트리밍/큐(streaming/queues), 외부 API 등 광범위한 인프라(infra)를 가상화(virtualization)하고 결정론적으로 재생합니다. 이를 통해 실제 인프라를 프로비저닝(re-provisioning)하지 않고도 테스트를 실행할 수 있습니다.
  • Combined Test Coverage: 개발자에게 중요한 구문(statement) 및 분기(branch) 커버리지와 QA 엔지니어에게 중요한 API 스키마(schema) 및 비즈니스 사용 사례(business use-case) 커버리지를 모두 계산하여 제공함으로써 객관적인 커버리지 지표를 제시합니다.
  • Expand API Coverage using AI: 기존 기록(recordings) 및 Swagger/OpenAPI 스키마(Schema)를 활용하여 AI가 경계 값(boundary values), 누락/추가 필드(missing/extra fields), 잘못된 타입(wrong types), 순서 오류(out-of-order sequences), 재시도/타임아웃(retries/timeouts) 등을 찾아내어 API 스키마, 구문, 분기 커버리지를 확장하는 데 기여합니다.
  • CI/CD Integration: CLI, GitHub Actions, Jenkins와 같은 CI 파이프라인(CI pipeline) 또는 Kubernetes 클러스터(cluster) 등 다양한 환경에서 테스트를 실행할 수 있도록 통합(integration)을 지원합니다.
  • Multi-Purpose Mocks: Keploy가 생성한 목(Mocks)은 서버 테스트(server Tests)로도 활용될 수 있습니다.
  • Reporting: API, 통합, 단위, E2E 커버리지에 대한 통합 리포트(unified reports)를 CI 또는 PR(pull requests)에서 직접 제공합니다.
  • Console: 기록된 테스트와 목을 확인하고 관리하며 디버깅(debug)할 수 있는 개발자 친화적인 콘솔(console)을 제공합니다.
  • Mock Registry: 팀과 환경 간에 목(mocks)을 관리, 재사용 및 버전 관리(version)할 수 있는 중앙 집중식 레지스트리(registry)를 제공합니다.