원문 캡처 · github.com
원문 캡처 · github.com

Keploy는 실제 사용자 트래픽을 기록해 API 및 통합 테스트와 목(mock) 데이터를 만드는 오픈소스 도구다. 네트워크 계층에서 트래픽을 포착하므로 SDK를 추가하거나 코드를 수정하지 않고 테스트를 만들 수 있다고 소개한다.

Keploy는 API 호출, 데이터베이스 쿼리, 스트리밍 이벤트를 기록한 뒤 테스트로 재생한다. 내부적으로 eBPF(확장 버클리 패킷 필터)를 사용하며, 제작사는 언어와 프레임워크에 구애받지 않는다고 설명한다. 복잡한 분산 API 흐름도 목과 스텁으로 기록·재생할 수 있다.

Postgres, MySQL, MongoDB 같은 데이터베이스와 Kafka, RabbitMQ 같은 스트리밍·큐, 외부 API도 기록 대상이다. 이 기록을 결정론적으로 재생해 인프라를 다시 준비하지 않고 테스트할 수 있다는 것이 Keploy의 설명이다. 자세한 내용은 기록·재생 문서와 인프라 가상화 문서에서 확인할 수 있다.

Keploy는 개발자를 위한 문장·분기 커버리지와 QA를 위한 API 스키마·업무 사례 커버리지를 계산한다고 밝힌다. 기존 기록과 Swagger/OpenAPI 스키마를 활용해 경계값, 누락되거나 추가된 필드, 잘못된 자료형, 순서가 뒤바뀐 요청, 재시도와 시간 초과를 찾아 API 스키마·문장·분기 커버리지를 넓히는 AI 기능도 제공한다. 커버리지 관련 안내는 Go 설치 문서와 Keploy 앱에서 볼 수 있다.

시작하려면 Keploy 에이전트를 설치한다.

bash
curl --silent -O -L https://keploy.io/install.sh && source install.sh

앱을 실행하면서 실제 API 호출을 테스트와 목으로 기록한다. 다음은 일반적인 실행 형식과 Python 예시다.

bash
keploy record -c "CMD_TO_RUN_APP"
bash
keploy record -c "python main.py"

기록한 사례는 외부 의존성 없이 오프라인으로 실행할 수 있다.

bash
keploy test -c "CMD_TO_RUN_APP" --delay 10

Keploy는 로컬 CLI, Jenkins와 GitHub Actions 같은 CI 파이프라인, Kubernetes 클러스터에서 테스트를 실행할 수 있다. 생성한 목을 서버 테스트로 사용할 수 있으며, API·통합·단위·종단 간 테스트 커버리지를 통합 보고서로 제공한다. 기록한 테스트와 목을 확인·관리·디버깅하는 콘솔, 실행 중 시스템 시간을 고정하는 기능, 팀과 환경 사이에서 목을 관리·재사용·버전 관리하는 레지스트리도 안내한다. 자세한 내용은 CI/CD 실행 문서, 시간 고정 문서, 목 레지스트리 문서를 참고할 수 있다.

Keploy는 네트워크 계층에서 동작해 여러 언어·프레임워크·런타임을 지원하며 SDK가 필요 없다고 설명한다. 다만 일부 의존성은 프로토콜과 파싱 방식이 오픈소스가 아니라는 이유로 오픈소스가 아니며, 해당 항목은 Keploy 엔터프라이즈에서 지원되지 않는다고 안내한다. 설치와 사용법은 설치 문서와 빠른 시작 안내에서 확인할 수 있다.