
cats cats-14.0.0
OpenAPI 엔드포인트를 위한 자동화된 REST API 퍼저 및 네거티브 테스팅 도구입니다. 코딩 노력 없이 수천 개의 자가 치유 테스트를 생성, 실행 및 보고하며, 경계 및 보안 시나리오를 포괄합니다.
CATS 문서는 https://endava.github.io/cats/에서 확인할 수 있습니다.
REST API 퍼저 및 부정 테스트 도구입니다. 코딩 없이 수천 개의 자가 치유 API 테스트를 몇 분 안에 실행하세요!
- 포괄적: 테스트는 다양한 시나리오를 기반으로 자동 생성되며 모든 필드와 헤더를 다룹니다.
- 지능형: 데이터 유형과 제약 조건을 기반으로 테스트가 생성되며, 각 Fuzzer는 테스트 중인 시나리오에 따라 특정 기대치를 가집니다.
- 고도로 구성 가능: 높은 수준의 사용자 정의가 가능합니다. 특정 Fuzzer, HTTP 응답 코드, HTTP 메서드, 요청 경로를 필터링하고 비즈니스 컨텍스트를 제공하는 등 다양한 설정을 할 수 있습니다.
- 자가 치유: 테스트가 생성됨에 따라 OpenAPI 사양의 변경 사항이 자동으로 반영됩니다.
- 배우기 쉬움: 직관적인 구성과 구문으로 학습 곡선이 평탄합니다.
- 빠름: 테스트 작성, 실행 및 보고를 자동화하여 수천 개의 시나리오를 몇 분 안에 처리합니다.
시간이 부족하신가요? 1분 퀵 스타트 가이드를 확인하세요!
개요
CATS (Contract API Testing and Security)는 간단하고 최소한의 구문과 평탄한 학습 곡선을 통해 코딩 없이 수천 개의 API 테스트를 몇 분 안에 생성할 수 있게 해줍니다. 모든 테스트는 100개 이상의 Fuzzer로 구성된 사전 정의된 세트를 기반으로 자동 생성, 실행 및 보고됩니다. Fuzzer는 완전히 무작위적인 대형 Unicode 값부터 요청 데이터 유형 및 제약 조건에 기반한 잘 구성된 컨텍스트 의존적 값에 이르기까지 다양한 경계 테스트 및 부정 시나리오를 다룹니다. 또한 CATS가 동적으로 요청 페이로드를 생성한다는 점을 활용하여 간단한 종단 간 기능 테스트를 작성할 수 있습니다.
HTML 보고서
명령줄
CATS 사용 방법 튜토리얼
다음은 CATS 사용 방법에 대한 단계별 가이드가 포함된 문서 목록입니다:
CATS가 발견한 일부 버그
- https://github.com/hashicorp/vault/issues/13274 | https://github.com/hashicorp/vault/issues/13273
- https://github.com/hashicorp/vault/issues/13225 | https://github.com/hashicorp/vault/issues/13232
- https://github.com/go-gitea/gitea/issues/19397 | https://github.com/go-gitea/gitea/issues/19398
- https://github.com/go-gitea/gitea/issues/19399
설치
Homebrew
> brew tap endava/tap
> brew install cats
수동 설치
CATS는 실행 가능한 JAR 또는 네이티브 바이너리로 제공됩니다. 네이티브 바이너리는 Java가 설치되어 있을 필요가 없습니다.
운영 체제에 맞는 네이티브 바이너리를 다운로드한 후, PATH에 추가하여 다른 명령줄 도구처럼 실행할 수 있습니다:
sudo cp cats /usr/local/bin/cats
자동 완성을 사용하려면 cats_autocomplete 스크립트를 다운로드한 후 다음을 실행하세요:
source cats_autocomplete
영구적인 자동 완성을 원하시면 위의 줄을 .zshrc 또는 .bashrc에 추가하되, cats_autocomplete 스크립트의 전체 경로를 입력해야 합니다.
대체 설정은 cats_autocomplete 소스를 확인할 수도 있습니다.
Windows용 네이티브 바이너리는 없지만 uberjar 버전을 사용할 수 있습니다. 이를 위해서는 Java 25+가 설치되어 있어야 합니다.
java -jar cats.jar로 실행할 수 있습니다.
최신 버전을 다운로드하려면 릴리스 페이지로 이동하세요: https://github.com/Endava/cats/releases.
소스에서 빌드
로컬 환경에서 CATS를 소스에서 빌드할 수 있습니다. Java 25가 필요합니다. Maven은 이미 번들되어 있습니다.
첫 번째 빌드를 실행하기 전에
./mvnw clean을 먼저 실행하세요. CATS는 OKHttp의 포크를 사용하며, 이는 로컬에5.X.X-CATS버전으로 설치됩니다. 따라서 공식 버전을 덮어쓰지 않아도 됩니다.
다음 Maven 명령어를 사용하여 프로젝트를 uberjar로 빌드할 수 있습니다:
./mvnw package -Dquarkus.package.type=uber-jar
그러면 target 폴더에 cats-runner.jar 파일이 생성됩니다. 이를 java -jar cats-runner.jar ...로 실행할 수 있습니다.
GraalVM Java 버전을 사용하여 네이티브 이미지를 빌드할 수도 있습니다.
./mvnw package -Pnative
단위 테스트 관련 참고 사항
단위 테스트를 실행하는 동안 일부 error 로그 메시지가 표시될 수 있습니다. 이는 Fuzzer의 부정 시나리오를 테스트하는 과정에서 예상되는 동작입니다.
기여하기
CONTRIBUTING.md를 참조하세요.