
Автоматизированный фаззер REST API и инструмент негативного тестирования для конечных точек OpenAPI. Генерирует, запускает и сообщает о тысячах самовосстанавливающихся тестов без усилий по написанию кода, охватывая граничные сценарии и сценарии безопасности.
Документация CATS доступна по адресу https://endava.github.io/cats/
Инструмент для фаззинга REST API и негативного тестирования. Запускайте тысячи самовосстанавливающихся API-тестов за считанные минуты без написания кода!
Мало времени? Ознакомьтесь с руководством по быстрому старту за 1 минуту!
Используя простой и минималистичный синтаксис с низким порогом входа, CATS (Contract API Testing and Security) позволяет генерировать тысячи API-тестов за считанные минуты без написания кода. Все тесты генерируются, запускаются и документируются автоматически на основе предопределённого набора из 100+ фаззеров. Фаззеры охватывают широкий спектр граничного тестирования и негативных сценариев — от полностью случайных больших значений Unicode до тщательно продуманных, контекстно-зависимых значений, основанных на типах данных и ограничениях запроса. Более того, вы можете воспользоваться тем, что CATS динамически генерирует полезные нагрузки запросов, и писать простые сквозные функциональные тесты.
Используйте --tui с обычной командой фаззинга, чтобы следить за выполнением и просматривать результаты, не покидая терминал:
cats --contract openapi.yml --server http://localhost:8080 --tui
Обзорная панель показывает пути (Paths), конфигурацию запуска (Run configuration), время отклика (Response time), коды HTTP-ответов (HTTP Response Codes), успехи/предупреждения/ошибки (Success/Warnings/Errors) и запущенные фаззеры (Fuzzers run), используя ту же терминологию, что и CLI и HTML-отчёт. Таблица фаззеров использует все доступные строки терминала; используйте j/k или Page Up/Page Down для навигации по ней, когда полный список не помещается. Нажмите 2 для деталей выполнения (Execution Details), 3 для сводки выполнения и результата quality gate (Execution summary and Quality gate result), 4 для деталей выполнения по причине результата (Execution Details by Result Reason), 5 для включённых путей (Paths included) или 6 для выполненных тестов, отсортированных по времени отклика (Response Time). Строки Result Reason и Path открывают соответствующие тесты по нажатию Enter.
Используйте клавиши со стрелками или j/k для выбора теста и нажмите Enter, чтобы просмотреть его запрос, ответ, результат, трассировку и команду воспроизведения в полноэкранном режиме детализации. Нажмите / в списке тестов для поиска по ID тестов, фаззерам, путям, сценариям, причинам результатов, методам, результатам и кодам ответов. a, e, w, s и i фильтруют все, ошибочные, предупреждающие, успешные и пропущенные результаты. Esc сначала очищает активный поиск, а в противном случае возвращает на предыдущий экран; 1 открывает обзорную панель.
Нажмите q, чтобы выйти из интерфейса. Во время активного запуска это запрашивает отмену, по возможности завершает текущий тест, сохраняет уже записанные результаты и завершается со статусом 130. После завершения выполнения q выполняет обычный выход.
Для TUI требуется интерактивный терминал размером не менее 80 столбцов на 24 строки, и его нельзя комбинировать с --dryRun. Он доступен для команд фаззинга на основе OpenAPI; автономная команда template продолжает использовать обычный вывод CLI. По умолчанию TUI сохраняет детали последних 10 000 тестов; используйте --tuiMaxResults, чтобы задать другое положительное ограничение. Агрегированная статистика продолжает охватывать полный запуск, даже когда старые детали отбрасываются.
Это список статей с пошаговыми руководствами по использованию CATS:
> 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 для альтернативной настройки.