Overhave-это веб-рамка для BDD: масштабируемый, настраиваемый, простой в использовании, на основе Admin и Pydantic.

Вы можете установить переработку через PIP от PYPI:
pip install overhaveWeb-Interface является основным инструментом для управления функциями BDD. Он состоит из:
Информация - Индексная страница с дополнительной информацией о вашем инструменте или проекте;
Функции, тестовые прогоны, версии и теги:
дает интерфейс для управления функциями и предоставляет информацию об идентификаторе, авторе имени, времени, редакторе и статусе публикации; Можно найти, редактировать или удалять элементы через панель сценария.
дает интерфейс для управления тестовыми прогонами и предоставляет информацию о.
Содержит версии функций в соответствии с тестовыми прогонами; Версии содержит PR-связки в репозитории удаленного GIT.
Содержит значения тегов, которые используются для тега функции.
Тестирование пользователей - раздел для просмотра и настройки тестовых пользователей;
Группы подразделы;
(в разработке).
Чрезмерные функции могут быть созданы и/или отредактированы через специальную панель сценариев в режиме редактирования функций. Функция должна иметь тип, зарегистрированный приложением, уникальным именем, указанным списком задач с традиционным форматом `PRJ-NUMBER` и текста сценария.
Панель сценария имеет таблицу шагов Pytest-BDD в правой стороне интерфейса. Эти шаги должны быть определены в соответствующих модулях приспособления и зарегистрированы в приложении при отображении запуска.
Пример панели сценариев из перерыва в режиме редактирования функций
Overhave генерирует отчет Allure после выполнения тестирования в веб-интерфейсе. Если вы выполняете тесты вручную через Pytest, эти результаты могут быть преобразованы в отчет Allure также с помощью инструмента Allure CLI. Этот отчет содержит описания сценариев, как они описаны в функциях.
Пример сгенерированного отчета о привлекательности после выполнения функции Overhave
Overhave имеет специальный демонстрационный режим (в разработке), который может быть использован для демонстрации фреймворта и ручной отладки / тестирования. Фреймворк предоставляет точки входа CLI для легкого запуска сервера в режиме отладки:
make up # start PostgreSQL database and Redis
overhave db create-all # create Overhave database schema
overhave-demo admin # start Overhave admin on port 8076 in debug mode
overhave-demo consumer -s test # start Overhave test execution consumerПримечание . Вы можете запустить администратор в специальном режиме, который не требует потребителей. В этом режиме используется Threadpool для выполнения задач тестирования и публикации асинхронно:
overhave-demo admin --threadpool --language=ruНо этот режим Threadpool не хватает в парадигме Kubernetes . Таким образом, настоятельно рекомендуется точно использовать соответствующих потребителей.
Overhave имеет CLI, который обеспечивает простой способ запуска службы веб-интерфейса, запуска потребителей и выполнения основных операций базы данных. Примеры ниже:
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4 ПРИМЕЧАНИЕ . Запуск службы принимает набор настроек, поэтому вы можете установить их через виртуальную среду с префиксом `OVERHAVE_` , например, `OVERHAVE_DB_URL` . Если вы хотите настроить настройки более явным образом посредством инъекции контекста, см. Следующую часть DOCS.
Служба может быть настроена с помощью введения контекста приложения с помощью подготовленного экземпляра объекта OverhaveContext. Этот контекст может быть установлен с использованием функции `set_context` инициализированного экземпляра` `ProxyFactory` .
Например, `my_custom_context` подготовлен. Итак, запуск приложения может быть реализован с помощью кода Follow:
from overhave import overhave_app , overhave_admin_factory
factory = overhave_admin_factory ()
factory . set_context ( my_custom_context )
overhave_app ( factory ). run ( host = 'localhost' , port = 8080 , debug = True )Примечание :
`overhave_app` - это приложение подготовленного колба с уже включенным`overhave_factory` - функция для кэшированного экземпляра LRU`ProxyFactory` ; Экземпляр имеет доступ к компонентам приложения, непосредственно используемым в `overhave_app` .`my_custom_context` - пример конфигурации контекста, см.Overhave имеет архитектуру производителя-потребителей, основанную на потоках Redis и поддерживает 3 типа потребителя:
`overhave_test_execution_factory` ;`overhave_publication_factory` ;`overhave_emulation_factory` . ПРИМЕЧАНИЕ . У `overhave_test_execution_factory` способность для инъекции контекста и может быть обогащена пользовательским контекстом как` `overhave_admin_factory` .
Перепечивание поддерживает собственную специальную структуру проекта:
Правильный подход заключается в создании корневого каталога (например, «демонстрация» внутри текущего репозитория), который содержит функции , светильники и каталоги шагов .
Каталог функций содержит различные типы функций в качестве отдельных каталогов, каждый из них соответствует предопределенному набору шагов Pytest-BDD.
Каталог светильников содержит типичные модули Pytest, разделенные различными типами функций. Эти модули используются для изолированных тестовых прогонов Pytest-BDD. Это необходимо из-за особого механизма коллекции шагов Pytest-BDD.
Каталог шагов содержит пакеты Pytest-BDD Steps, разделенные различными типами функций. Каждое шаги подкаталогают свои собственные заявленные шаги в соответствии с поддерживаемым типом функции.
Таким образом, можно создать собственную горизонтальную структуру различных направлений продукта с уникальными шагами и питестскими приспособлениями.
Примечание . Эта структура используется в приложении из чрезмерного захоронения . Формированные данные дают возможность указать зарегистрированный тип функции на панели скрипта Web-Interface. Кроме того, эта структура определяет, какие шаги будут отображаться в правой части панели сценариев .
Overhave имеет свой собственный текстовый формат специальной функции, который наследует Геркин от Pytest-BDD с уникальными обновлениями:
`@severity.blocker` );`PRJ-1234` ;Пример заполненного содержимого функции расположен в faction_example.rst.
Переконная реализация решения для использования маркеров Pytest с помощью пользовательской дополнительной информации:
Примеры:
@disabled(not ready)
Feature : My business feature @disabled(TODO: https://tracker.myorg.com/browse/PRJ-333; deadline 01.01.25)
Scenario : Yet another business feature @xfail(bug: https://tracker.myorg.com/browse/PRJ-555)
Scenario outline: Other business featureЕсли разум содержит URL, SO Overhave приложит ссылку на Allure к отчету: для отключения - это будет linktype.link, для xfail - linktype.issue.
Overhave имеет возможность устанавливать ссылки на свою собственную службу администратора в тестировании Allure. Ссылка будет установлена автоматически, когда вы генерируете отчет Allure. Эта функция может быть включена с помощью настройки переменной среды `OVERHAVE_ADMIN_URL` :
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com Кроме того, Overhave имеет возможность устанавливать ссылки на файл функций в репозитории GIT. Ссылка будет установлена автоматически, когда вы генерируете отчет Allure. Эта функция может быть включена с помощью настройки переменной среды `OVERHAVE_GIT_PROJECT_URL` :
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo Язык веб -интерфейса заинтересован по умолчанию и не может быть переключен (если это необходимо - пожалуйста, создайте `feature request` или внести свой вклад).
Текст функции, а также ключевые слова Pytest-BDD BDD настраиваются с помощью дополнительных моделей, например, ключевые слова RUS уже определены в Framework и доступны для использования:
from overhave . extra import RUSSIAN_PREFIXES
language_settings = OverhaveLanguageSettings ( step_prefixes = RUSSIAN_PREFIXES )Примечание : вы можете создать свое собственное картирование префикса для вашего языка:
from overhave import StepPrefixesModel
GERMAN_PREFIXES = StepPrefixesModel (
FEATURE = "Merkmal:" ,
SCENARIO_OUTLINE = "Szenarioübersicht:" ,
SCENARIO = "Szenario:" ,
BACKGROUND = "Hintergrund:" ,
EXAMPLES = "Beispiele:" ,
EXAMPLES_VERTICAL = "Beispiele: Vertikal" ,
GIVEN = "Gegeben " ,
WHEN = "Wann " ,
THEN = "Dann " ,
AND = "Und " ,
BUT = "Aber " ,
)Overhave дает возможность отправлять ваши новые функции или изменения в репозиторий удаленного GIT, который размещается Bitbucket или Gitlab. Интеграция с Bitbucket является нативной, в то время как интеграция с Gitlab использует библиотеку Python-Gitlab.
Вы можете установить необходимые настройки для своего проекта:
publisher_settings = OverhaveGitlabPublisherSettings (
repository_id = '123' ,
default_target_branch_name = 'master' ,
)
client_settings = OverhaveGitlabClientSettings (
url = "https://gitlab.mycompany.com" ,
auth_token = os . environ . get ( "MY_GITLAB_AUTH_TOKEN" ),
)Проводник (для BitBucket) или слияние (для Gitlab) созданы при нажатии на кнопку «Создать запрос на вытягивание» на странице результата тестирования. Эта кнопка доступна только для результата успеха теста.
Примечание . Одним из самых популярных случаев аутентификации Gitlab API является схема OAuth2 с учетной записью сервиса. В соответствии с этой схемой, у вас должен быть токен OAuth2, который может иметь короткий срок службы и не может быть указан через окружающую среду. Для этой ситуации Overhave обладает особенным токенеркливером с собственным TokenizerClientsettings - этот простой клиент может взять токен от удаленного пользовательского сервиса токенизатора Gitlab.
Выполняет возможность синхронизировать состояние вашего текущего хранилища GIT с базой данных. Это означает, что ваши функции, которые расположены в базе данных, могут быть обновлены - и источником обновлений является ваш репозиторий.
Например : вам пришлось сделать объемную замену данных в репозитории GIT, и теперь вы хотите внести изменения в удаленную базу данных. Это не так простой вопрос может быть решен с помощью специального инструмента переработки :
Вы можете установить необходимые настройки для своего проекта:
overhave sync run # only update existing features
overhave sync run --create-db-features # update + create new features
overhave sync run --pull-repository # pull git repo and run syncВы можете проверить этот инструмент с демонстрационным режимом из перехода . По умолчанию 3 функции создаются в демо -базе данных. Просто попробуйте изменить их или создать новые функции и запустить команду синхронизации - вы получите результат.
overhave-demo sync-run # or with '--create-db-features'Overhave поддерживает проверку существующих файлов функций. Команда Попробуйте проанализировать функции и заполнить определенный формат информации о функциях. Если есть какие -либо проблемы, будет выброшена специальная ошибка.
overhave sync validate-features
overhave sync validate-features --raise-if-nullable-id
overhave sync validate-features --pull-repositoryИ да, вы можете попробовать это с демо -режимом:
overhave-demo validate-features
overhave sync validate-features -r # --raise-if-nullable-idOverhave дает возможность устанавливать пользовательский файл index.html для рендеринга. Путь к файлу может быть установлен через среду, а также установить с контекстом:
admin_settings = OverhaveAdminSettings (
index_template_path = "/path/to/index.html"
) Перезависимый предоставляет несколько стратегий авторизации, объявленные `AuthorizationStrategy`
Соответствующая стратегия и дополнительные данные должны быть помещены в `OverhaveAuthorizationSettings` , например, стратегия LDAP может быть настроена так:
auth_settings = OverhaveAuthorizationSettings ( auth_strategy = AuthorizationStrategy . LDAP )
ldap_manager_settings = OverhaveLdapManagerSettings ( ldap_admin_group = "admin" )Переполняет функциональность для облачных взаимодействий S3 , таких как создание и удаление ведра, загрузка файлов, загрузка и удаление. Структура предоставляет возможность хранить отчеты и другие файлы в удаленном облачном хранилище S3. Вы можете обогатить свою среду следующими настройками:
OVERHAVE_S3_ENABLED=true
OVERHAVE_S3_URL=https://s3.example.com
OVERHAVE_S3_ACCESS_KEY= < MY_ACCESS_KEY >
OVERHAVE_S3_SECRET_KEY= < MY_SECRET_KEY >При желании вы можете изменить настройки по умолчанию также:
OVERHAVE_S3_VERIFY=false
OVERHAVE_S3_AUTOCREATE_BUCKETS=true Фреймворк с включенным флагом `OVERHAVE_S3_AUTOCREATE_BUCKETS` создаст ведра приложения в удаленном хранилище, если ведра не существует.
Overhave имеет свой собственный интерфейс прикладного программирования, основанный на FASTAPI.
Переработать openapi.json через Swagger
Текущие возможности могут быть отображены через встроенное чванство - просто запустите API и откройте http: // localhost: 8000 в вашем браузере.
overhave api -p 8000 Интерфейс имеет авторизацию через схему OAuth2, поэтому вы должны настроить `OVERHAVE_API_AUTH_SECRET_KEY` для использования.
Прямо сейчас API реализует типы ресурсов:
Взносы очень приветствуются.
Установка проекта очень проста и требует всего несколько подготовленных команд (делайте предварительные работы только для Ubuntu; так что вы можете установить те же пакеты для своей ОС вручную):
make pre-init
make initУправление пакетами обеспечивается поэзией.
Тесты можно запускать с Tox. Docker-Compose используется для подготовки и обслуживания других услуг, таких как база данных. Простые тесты и выполнение линтеров:
make up
make test
make lintПожалуйста, смотрите файл и обнаружите полезные ярлыки. Вы также можете запустить тесты в контейнере Docker также:
make test-dockerДокументация проекта может быть построена с помощью Sphinx и Simple Make Command:
make build-docsПо умолчанию документация будет построена с использованием строителя HTML в каталог _build.
Распределено в соответствии с условиями лицензии GNU GPLV2.
Если вы столкнетесь с какими -либо проблемами, сообщите о них здесь в разделах с подробным описанием.