Назад к обновлениям
New releaseSep 7, 2026

cats cats-14.0.0

Автоматизированный фаззер REST API и инструмент негативного тестирования для конечных точек OpenAPI. Генерирует, запускает и сообщает о тысячах самовосстанавливающихся тестов без усилий по написанию кода, охватывая граничные сценарии и сценарии безопасности.

Поделиться

Логотип CATS

CI Commits

License Java Version GraalVM Quality Gate Status Coverage Bugs Code Smells

Документация CATS доступна по адресу https://endava.github.io/cats/

Фаззер REST API и инструмент для негативного тестирования. Запускайте тысячи самовосстанавливающихся API-тестов за считанные минуты без написания кода!

  • Комплексный: тесты генерируются автоматически на основе множества сценариев и покрывают каждое поле и заголовок
  • Интеллектуальный: тесты генерируются на основе типов данных и ограничений; каждый фаззер имеет определённые ожидания в зависимости от тестируемого сценария
  • Высокая настраиваемость: широкая возможность кастомизации: вы можете фильтровать конкретные фаззеры, HTTP-коды ответов, HTTP-методы, пути запросов, задавать бизнес-контекст и многое другое
  • Самовосстанавливающийся: так как тесты генерируются, любое изменение OpenAPI-спецификации подхватывается автоматически
  • Простота в изучении: пологая кривая обучения с интуитивно понятной конфигурацией и синтаксисом
  • Быстрота: автоматический процесс записи, запуска и составления отчётов по тестам, охватывающий тысячи сценариев за считанные минуты

Мало времени? Ознакомьтесь с 1-минутным кратким руководством!

Обзор

Используя простой и минималистичный синтаксис с пологой кривой обучения, CATS (Contract API Testing and Security) позволяет вам генерировать тысячи API-тестов за считанные минуты без написания кода. Все тесты генерируются, запускаются и формируются в отчёты автоматически на основе предопределённого набора из 100+ фаззеров. Фаззеры охватывают широкий спектр сценариев граничного тестирования и негативных сценариев — от полностью случайных больших значений Unicode до тщательно продуманных, зависящих от контекста значений, основанных на типах данных и ограничениях запроса. Более того, вы можете использовать тот факт, что CATS динамически генерирует полезные нагрузки запросов, и писать простые сквозные функциональные тесты.

Отчёт HTML

CATS

Командная строка

CATS

Учебные пособия по использованию CATS

Это список статей с пошаговыми инструкциями по использованию CATS:

Некоторые ошибки, найденные CATS

Установка

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 ....

Также можно собирать нативные образы, используя версию Java GraalVM.

./mvnw package -Pnative

Примечания по модульным тестам

Вы можете увидеть некоторые сообщения error в логах во время выполнения модульных тестов. Это ожидаемое поведение для тестирования негативных сценариев фаззеров.

Вклад

Пожалуйста, обратитесь к CONTRIBUTING.md.

Категории