N4darae/shrt
승인된 기준선과 비교해 기록된 API 호출 체인을 백엔드에 재생하고 릴리스 간 변경을 찾아내는 회귀 테스트 도구입니다.
- 스타
- 2,388
- 포크
- 164
- 열린 이슈
- 6
- 마지막 커밋
- 12일 전
어떤 프로젝트인가요?
shrt는 YAML로 정의한 API 호출 체인을 통해 백엔드를 테스트합니다. 로그인, 항목 생성, 재고 추가, 다시 읽기 같은 흐름을 실행할 수 있습니다. 통과한 실행 결과를 사람이 기준선으로 승인하면, 이후 릴리스에서 같은 체인을 재생해 비교합니다. 필드가 바뀌면 shrt는 해당 단계와 변경된 필드, 그리고 원인으로 의심되는 쓰기 작업을 보고합니다.
contract 파일에는 각 rpc에서 요구하는 조건, 값의 출처, 잘못된 입력을 거부하는 방식, 쓰기 작업이 숫자 필드를 어떻게 바꾸는지가 정의됩니다. shrt는 이 contract를 바탕으로 경계값, 누락되거나 유효하지 않은 토큰, 알 수 없는 id, 중복 항목을 확인하는 호출 체인을 생성할 수 있습니다. HTTP POST를 통해 Connect 프로토콜을 사용하므로 connect-go로 만든 서버에서 동작합니다. 일반 gRPC 전용 서버는 지원하지 않습니다. 단항 rpc와 서버 스트리밍 rpc를 처리하며, 스트림은 첫 메시지까지 읽습니다.
이 도구는 Go로 작성되었으며 .proto 파일을 컴파일하려면 buf가 필요합니다. 자격 증명은 환경 변수에서 읽고 실행 기록에서는 마스킹됩니다. config에 대상 호스트를 명시적으로 허용하지 않으면 localhost로만 요청을 보냅니다. 코딩 에이전트가 조작하도록 설계되었지만, 모든 명령은 직접 실행해도 됩니다.
핵심 기능
- 01API 호출 체인은 YAML 파일로 정의하며 릴리스마다 재생합니다.
- 02사람이 승인한 기준선에는 assertion이 확인하지 않는 필드까지 포함해 응답 필드를 기록합니다.
- 03contract 파일로 경계값, 인증 실패, 중복 항목을 확인하는 호출 체인을 생성할 수 있습니다.
- 04실패가 발생하면 해당 단계와 변경된 필드, 원인으로 의심되는 쓰기 작업을 표시합니다.
- 05프로덕션 데이터를 보호하기 위해 요청은 localhost 또는 명시적으로 허용된 호스트로 제한됩니다.
- 06CI 게이트 명령은 실패 시 0이 아닌 종료 코드를 반환합니다.
활용 사례
- 릴리스 간 connect-go 백엔드의 회귀를 찾아냅니다.
- 새 빌드마다 CI에서 API 회귀 테스트를 실행합니다.
- 사람의 검토 아래 코딩 에이전트가 API 테스트 contract를 작성하고 유지하도록 합니다.
빠른 시작
- 1
buf 설치 (shrt가 PATH에서 필요로 하는 Protocol Buffers 빌드 도구)
- 2
Go 1.26 이상으로 shrt 설치
go install github.com/N4darae/shrt/cmd/shrt@latest - 3
설치된 버전 확인
shrt version - 4
백엔드 프로젝트에서 shrt를 설정하고 확인
shrt init
사용 전 알아둘 점
- Go 1.26 이상과 PATH에 등록된 buf가 필요합니다.
- Connect 프로토콜을 사용하는 서버에서만 작동하며, gRPC만 사용하는 서버에서는 작동하지 않습니다.
- 스트리밍 RPC는 첫 번째 메시지까지만 읽습니다.
- shrt init은 어떤 RPC가 로그인용인지 추측하므로 결과를 확인해야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- shrt은(는) 무엇인가요?
- 승인된 기준선과 비교해 기록된 API 호출 체인을 백엔드에 재생하고 릴리스 간 변경을 찾아내는 회귀 테스트 도구입니다. shrt는 YAML로 정의한 API 호출 체인을 통해 백엔드를 테스트합니다. 로그인, 항목 생성, 재고 추가, 다시 읽기 같은 흐름을 실행할 수 있습니다. 통과한 실행 결과를 사람이 기준선으로 승인하면, 이후 릴리스에서 같은 체인을 재생해 비교합니다. 필드가 바뀌면 shrt는 해당 단계와 변경된 필드, 그리고 원인으로 의심되는 쓰기 작업을 보고합니다.
- shrt은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- shrt은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- shrt은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. shrt의 마지막 커밋은 2026년 10월 26일입니다.
- shrt은(는) 어디에 사용할 수 있나요?
- 릴리스 간 connect-go 백엔드의 회귀를 찾아냅니다. 새 빌드마다 CI에서 API 회귀 테스트를 실행합니다. 사람의 검토 아래 코딩 에이전트가 API 테스트 contract를 작성하고 유지하도록 합니다.
- shrt는 어떻게 설치하나요?
- buf 설치 (shrt가 PATH에서 필요로 하는 Protocol Buffers 빌드 도구) Go 1.26 이상으로 shrt 설치: go install github.com/N4darae/shrt/cmd/shrt@latest 설치된 버전 확인: shrt version 백엔드 프로젝트에서 shrt를 설정하고 확인: shrt init
- shrt은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/N4darae/shrt
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
JSON 입력과 서버 reflection 또는 proto 파일을 통한 스키마 탐색을 지원하는 gRPC 서버 호출용 CLI 도구입니다.
gRPC 서버에 요청을 대화형으로 보내는 브라우저 UI를 실행하는 CLI 도구로, REST용 Postman과 비슷합니다.
HTTP, GraphQL, gRPC, WebSocket, SSE 요청을 git으로 관리할 수 있는 터미널 API 클라이언트
Go로 만든 로컬 우선 네이티브 API 클라이언트로, REST, gRPC, GraphQL, WebSocket을 지원하며 트래픽 프록시를 내장합니다.
JavaScript로 성능 테스트를 작성하고 Go 바이너리로 실행하는 오픈 소스 부하 테스트 도구입니다.