Skip to content

Repository files navigation

Buggy

Readthedocs документация (RU | EN) (в разработке).

Buggy - это надстройка над TestNG для быстрого создания/подключения тестового проекта, разработки и вариативнго запуска автотестов.

  1. Легко и просто подключить TestNG к проекту с тестами. Как пример, смотреть модуль buggy-min-example.
  2. Собирать готовый к исполнению jar.
  3. Обрабатывать параметры запуска и расширять уже существующую конфигурацию (JCommander).
  4. Автоматически собирать исполняемые тестовые классы в сьюты для последующего запуска в TestNG.
  5. Автоматически собирать и добавлять в TestNG необходимые листенеры.
  6. "На горячую" перезагружать настройки логирования.
  7. Регулировать запуск тестов по типу.
  8. Регулировать запуск тесов по компонентам, сервисам или интерфейсам тестируемой системы.
  9. Транслировать результаты запуска в различные сервисы.
  1. Управление конфигурацией запускаемых тестов.
  2. Расширение существующей конфигурации через собственные интерфейсы.
  3. Листенер для IntelliJ IDEA TestNG плагина для запуска тестов из IntelliJ IDEA
  4. Атомарное логирование для каждого тестового или конфигурационного метода в отдельный файл.
  5. Цветовая дифференциация консольных логов.
  6. Механизм мониторинга исполняемых тестов.
  7. Базовый Telegram-нотификатор.
  8. Модуль к feign клиенту (утилиты).
  9. Модуль к okhttp клиенту (утилиты).
  10. Модуль интеграция c TestRail (трансляция результатов).
  1. Модуль интеграция с ReportPortal (трансляция результатов).
  2. Модуль к Retrofit клиенту (утилиты).
  3. Модуль работы с protobuf.
  • PrimaryConfig
    • Базовая конфигурация представлена индексируемым интерфейсом PrimaryConfig.
    • Любой класс реализации интерфейса PrimaryConfig будет автоматически подгружен и использован для конфигурации по умолчанию (Buggy.getPrimaryConfig()).
    • Класс реализации интерфейса PrimaryConfig может быть имплементирован от множества конфигурационных интерфейсов, в том числе и из разных проектов.
    • Пример: org.touchbit.buggy.example.min.config.Config
  • SecondaryConfig
    • Дополнительная конфигурация (команды) представлена индексируемым интерфейсом SecondaryConfig.
    • Любой класс реализации интерфейса SecondaryConfig будет автоматически подгружен и создан экземпляр (Buggy.getSecondaryConfigs()).
    • Класс реализации интерфейса SecondaryConfig может быть имплементирован от множества конфигурационных интерфейсов, в том числе и из разных проектов.
    • Для класса реализации интерфейса SecondaryConfig обязательно наличие аннотации com.beust.jcommander.Parameters с объявленным commandNames.
    • Пример: org.touchbit.buggy.example.min.config.MinExampleSecondaryConfig
Параметры запуска
KeysDefaultDescription
--help-?falseВывести информацию с параметрами запуска.
--allfalseПри запуске тестов вывести в лог все параметры конфигурации и их значения.
--checkfalseПроверить конфигурацию на корректность без запуска тестов.
--version-vfalseВывести версию исполяемого jar.
--force-ffalseЗапуск всех тестов без исключения.
--print-suitefalseВывести информацию о тестовом сьюте.
--print-causefalseВывести причину падения/исключения теста.
--print-logfalseВывести в лог путь к файлу выполненного теста.
--loglogsОтносительный или абсолютный путь к директории ведения логов.
--statusnullСтатус с которым следует принудительно завешить прогон тестов.
--threads50Количество потоков для исполняемых тестовых методов.
--services-sRuntimeСписок доступных для тестирования сервисов.
--interface-iRuntimeСписок доступных для тестирования интерфейсов.
--type-tINTEGRATIONТип проводимого тестирования.
--artifacts-urlnullUrl к логам тестов (CI)
$ java -jar buggy-min-example/target/Buggy.jar -?
===============================================
Usage: Buggy [options] [command] [command options]
Options:
--artifacts-url
The storage address for the builds (artifacts).
--check
Check buggy configuration without test run.
-f, --force
Running all tests, including those that fall.
-?, --help
Print usage.
-i, --interface
List of tested interfaces in the format: NAME,NAME,NAME.
Default: [API]
--print-cause
Print the cause of a fail or skip testin the console log.
--print-log
Print the test log file path in the console log
--print-suite
Display information on the Suite in the console log.
-s, --services
List of tested services in the format: NAME,NAME,NAME.
Default: [GITLAB]
--threads
The number of threads to run the test methods.
Default: 50
-t, --type
Type of tests to run.
Default: INTEGRATION
Possible Values: [SMOKE, MODULE, INTEGRATION, SYSTEM]
-v, --version
Print program version
Commands:
network
Usage: network [options]
Options:
--connection-timeout
Connection timeout for request
Default: 10
--host
Tested host
Default: http://example.com
--read-timeout
Read timeout for response
Default: 10
--write-timeout
Write timeout for request
Default: 10

.indirect/img/buggy_run.jpeg

Документация разработана при помощи синтаксиса reStructuredText.

Стандартный синтаксис разметки reStructuredText описан тут

Онлайн редакторы:

  1. RSTed
  2. Notex

Исходники документации находятся в директории docs и предназначены для деплоя на сайт buggy.readthedocs.io.

Точка входа для разработки документации: docs/index.rst

Точка входа для управление конфигурацией сборки документации: docs/conf.py

Для локальной сборки проекта с документацией необходимо:

  1. Установить python 3
  2. Установить sphinx-doc
  3. Выполнить сборку sphinx-build -W -b html ./docs ./site

В результате в директории ./site будет находится reStructuredText документация в стиле сайта readthedocs.org.

Сборка образа

  • выполнив make build-doc-image (при условии установленного make)

или

  • выполнив docker build --no-cache -t buggy/doc -f ./docs/Dockerfile . (точка в конце обязательна)

В результате выполнения будет создан образ buggy/doc:latest

Запуск контейнера

  • docker run -p 80:80 buggy/doc

или

  • make run-doc-image
  1. Toolbar ⮞ Run ⮞ Edit Configurations ⮞ Templates ⮞ JUnit

  2. Добавить конфигурацию покрытия кода (jacoco) с шаблоном: org.touchbit.buggy.*

    .indirect/img/junit_coverage.jpeg
  3. Удалить все существующие конфигурации.

    .indirect/img/junit_clean.jpeg
  4. Применить измнеения.

  5. Выбрать тестовый пакет(ы) и выполнить тесты.

    .indirect/img/junit_run.jpeg

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages