Readthedocs документация (RU | EN) (в разработке).
Buggy - это надстройка над TestNG для быстрого создания/подключения тестового проекта, разработки и вариативнго запуска автотестов.
- Легко и просто подключить TestNG к проекту с тестами. Как пример, смотреть модуль buggy-min-example.
- Собирать готовый к исполнению jar.
- Обрабатывать параметры запуска и расширять уже существующую конфигурацию (JCommander).
- Автоматически собирать исполняемые тестовые классы в сьюты для последующего запуска в TestNG.
- Автоматически собирать и добавлять в TestNG необходимые листенеры.
- "На горячую" перезагружать настройки логирования.
- Регулировать запуск тестов по типу.
- Регулировать запуск тесов по компонентам, сервисам или интерфейсам тестируемой системы.
- Транслировать результаты запуска в различные сервисы.
- Управление конфигурацией запускаемых тестов.
- Расширение существующей конфигурации через собственные интерфейсы.
- Листенер для IntelliJ IDEA TestNG плагина для запуска тестов из IntelliJ IDEA
- Атомарное логирование для каждого тестового или конфигурационного метода в отдельный файл.
- Цветовая дифференциация консольных логов.
- Механизм мониторинга исполняемых тестов.
- Базовый Telegram-нотификатор.
- Модуль к feign клиенту (утилиты).
- Модуль к okhttp клиенту (утилиты).
- Модуль интеграция c TestRail (трансляция результатов).
- Модуль интеграция с ReportPortal (трансляция результатов).
- Модуль к Retrofit клиенту (утилиты).
- Модуль работы с 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
- Дополнительная конфигурация (команды) представлена индексируемым интерфейсом
| Keys | Default | Description | |
|---|---|---|---|
| --help | -? | false | Вывести информацию с параметрами запуска. |
| --all | false | При запуске тестов вывести в лог все параметры конфигурации и их значения. | |
| --check | false | Проверить конфигурацию на корректность без запуска тестов. | |
| --version | -v | false | Вывести версию исполяемого jar. |
| --force | -f | false | Запуск всех тестов без исключения. |
| --print-suite | false | Вывести информацию о тестовом сьюте. | |
| --print-cause | false | Вывести причину падения/исключения теста. | |
| --print-log | false | Вывести в лог путь к файлу выполненного теста. | |
| --log | logs | Относительный или абсолютный путь к директории ведения логов. | |
| --status | null | Статус с которым следует принудительно завешить прогон тестов. | |
| --threads | 50 | Количество потоков для исполняемых тестовых методов. | |
| --services | -s | Runtime | Список доступных для тестирования сервисов. |
| --interface | -i | Runtime | Список доступных для тестирования интерфейсов. |
| --type | -t | INTEGRATION | Тип проводимого тестирования. |
| --artifacts-url | null | Url к логам тестов (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 test in 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Документация разработана при помощи синтаксиса reStructuredText.
Стандартный синтаксис разметки reStructuredText описан тут
Онлайн редакторы:
Исходники документации находятся в директории docs и предназначены для деплоя на сайт buggy.readthedocs.io.
Точка входа для разработки документации: docs/index.rst
Точка входа для управление конфигурацией сборки документации: docs/conf.py
Для локальной сборки проекта с документацией необходимо:
- Установить python 3
- Установить sphinx-doc
- Выполнить сборку
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



