Repolode
N4darae

N4darae/shrt

Средство регрессионного тестирования повторно выполняет записанные цепочки вызовов API и сравнивает результаты с одобренными человеком эталонами, выявляя изменения между релизами.

Звёзды
2,460
Форки
169
Открытые issues
6
Последний коммит
12 дней назад

Что это?

shrt проверяет бэкенд, выполняя цепочки вызовов API, описанные в YAML: например, вход в систему, создание объекта, добавление запаса и чтение результата. Человек утверждает успешный прогон в качестве эталона, а в последующих релизах цепочки выполняются повторно и сравниваются с ним. Если поле изменилось, shrt указывает шаг, поле и запись, которая, предположительно, вызвала изменение.

В contract-файле описывается, что требуется для каждого rpc, откуда берутся значения, как отклоняются некорректные входные данные и как записи изменяют числовые поля. shrt может генерировать цепочки на основе этого контракта, проверяя граничные значения, отсутствующие или недействительные токены, неизвестные id и дубликаты. Инструмент использует протокол Connect поверх HTTP POST, поэтому работает с серверами на connect-go; серверы только с обычным gRPC не поддерживаются. Поддерживаются unary- и server-streaming rpc; поток читается до первого сообщения.

Инструмент написан на Go, а для компиляции .proto-файлов ему нужен buf. Учетные данные считываются из переменных окружения и скрываются в записях прогонов. Запросы отправляются только на localhost, если хост назначения не указан в конфигурации в списке разрешенных. Инструмент рассчитан на работу под управлением coding agent, но все команды можно выполнять и вручную.

Ключевые возможности

  • 01Цепочки вызовов API задаются в YAML-файлах и повторно выполняются при каждом релизе.
  • 02В одобренных человеком эталонах сохраняются поля ответов, в том числе те, которые не проверяются утверждениями.
  • 03На основе contract-файла можно генерировать цепочки проверок граничных значений, ошибок авторизации и дубликатов.
  • 04При сбоях указываются шаг, изменившееся поле и запись, предположительно вызвавшая изменение.
  • 05Чтобы защитить данные в production, запросы ограничены localhost и явно разрешенными хостами.
  • 06Команда для запуска CI-проверки возвращает ненулевой код завершения при сбое.

Сценарии использования

  • Выявление регрессий в бэкенде на connect-go между релизами.
  • Запуск регрессионных проверок API в CI для каждой новой сборки.
  • Создание и сопровождение контрактов тестирования API coding agent под контролем человека.

Быстрый старт

  1. 1

    Установите buf (инструмент сборки Protocol Buffers, который shrt требует в PATH)

  2. 2

    Установите shrt с Go 1.26 или более новой версии

    go install github.com/N4darae/shrt/cmd/shrt@latest
  3. 3

    Проверьте установленную версию

    shrt version
  4. 4

    Настройте shrt в backend-проекте и проверьте его работу

    shrt init

Что важно знать

  • Требуются Go 1.26 или более новая версия и buf в PATH.
  • Работает только с серверами, использующими протокол Connect, но не с серверами, поддерживающими только gRPC.
  • В потоковых RPC чтение выполняется только до первого сообщения.
  • shrt init пытается определить, какой RPC отвечает за вход в систему, поэтому результат нужно проверить.

В подборках

Темы

#testing#api-testing#regression-testing#go#connect-rpc#grpc#ci-cd#ai-agent

Частые вопросы

Что такое shrt?
Средство регрессионного тестирования повторно выполняет записанные цепочки вызовов API и сравнивает результаты с одобренными человеком эталонами, выявляя изменения между релизами. shrt проверяет бэкенд, выполняя цепочки вызовов API, описанные в YAML: например, вход в систему, создание объекта, добавление запаса и чтение результата. Человек утверждает успешный прогон в качестве эталона, а в последующих релизах цепочки выполняются повторно и сравниваются с ним. Если поле изменилось, shrt указывает шаг, поле и запись, которая, предположительно, вызвала изменение.
shrt можно использовать бесплатно? Какая у него лицензия?
shrt распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
shrt всё ещё поддерживается?
Активно поддерживается. Последний коммит в shrt — 26 окт. 2026 г..
Для чего можно использовать shrt?
Выявление регрессий в бэкенде на connect-go между релизами. Запуск регрессионных проверок API в CI для каждой новой сборки. Создание и сопровождение контрактов тестирования API coding agent под контролем человека.
Как установить shrt?
Установите buf (инструмент сборки Protocol Buffers, который shrt требует в PATH) Установите shrt с Go 1.26 или более новой версии: go install github.com/N4darae/shrt/cmd/shrt@latest Проверьте установленную версию: shrt version Настройте shrt в backend-проекте и проверьте его работу: shrt init
Где скачать shrt?
Исходный код и инструкции по установке — на GitHub: https://github.com/N4darae/shrt

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты