BDD的Web框架過度:可擴展,可配置,易於使用,基於Blask Admin和Pydantic。

您可以通過PYPI通過PIP安裝Overhave :
pip install overhaveWeb-Interface是BDD功能管理的基本工具。它由:
信息 - 索引頁面,其中包含有關您的工具或項目的可選信息;
功能,測試運行,版本和標籤:
給出功能記錄管理的接口,並提供有關ID,名稱作者,時間,編輯和發布狀態的信息;可以通過腳本面板搜索,編輯或刪除項目。
給出一個用於測試運行管理的接口並提供有關的信息。
包含與測試運行相對應的功能版本;版本包含遠程GIT存儲庫的PR鏈接。
包含標籤值,用於功能的標記。
測試用戶 - 查看和配置測試用戶的部分;
小組小節;
(在開發中)。
可以在功能編輯模式下通過特殊腳本面板創建和/或編輯過多的功能。功能應在應用程序,唯一名稱,指定的任務列表中註冊的類型,並帶有傳統格式`PRJ-NUMBER`和“方案”文本。
腳本面板在接口的右側具有pytest-bdd步驟表。這些步驟應在適當的固定裝置模塊中定義,並在要顯示的啟動時在應用程序中註冊。
在功能編輯模式下避免腳本面板的示例
在Web-Interface中測試執行後, Overhave生成了誘人報告。如果您通過pytest手動執行測試,則可以使用Allure CLI工具將這些結果轉換為Allure報告。該報告包含在功能中描述的方案描述。
執行Overhave的功能後,生成的魅力報告的示例
Overhave具有特殊的演示模式(在開發中),可以用於框架演示和手動調試 /測試。該框架為在調試模式下運行的Easy Server提供了一個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但是,在kubernetes範式中,這種螺紋池模式不可計入。因此,強烈建議精確使用相應的消費者。
Overhave的CLI提供了一種簡單的方法來啟動Service Web-Interface,運行消費者並執行基本數據庫操作。示例如下:
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4注意:服務啟動需要一組設置,因此您可以通過前綴`OVERHAVE_`通過虛擬環境設置它們,例如`OVERHAVE_DB_URL` 。如果您想通過上下文注入以更明確的方式配置設置,請參閱下一個文檔。
可以通過應用程序上下文注入使用OverhaveContext對象的實例來配置服務。可以使用初始化`ProxyFactory`實例的`set_context`函數設置此上下文。
例如,已準備好`my_custom_context` 。因此,可以使用以下代碼來實現應用程序啟動:
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步驟軟件包,也包含不同特徵類型分配的pytest-bdd步驟軟件包。每個步驟子目錄都根據支持的功能類型,都有自己聲明的步驟。
因此,可以使用獨特的步驟和pytest固定裝置來創建自己的不同產品方向的水平結構。
注意:此結構用於備用應用程序。形成的數據可以在Web-Interface腳本面板中指定註冊的功能類型。同樣,該結構定義了將在腳本面板的右側顯示哪些步驟。
Overhave具有自己的特殊功能的文本格式,該格式從Pytest-BDD繼承了Gherkin,其獨特更新:
`@severity.blocker` );`PRJ-1234` ;填充功能內容的一個示例位於feature_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,則避免了誘人的鏈接到報告:對於禁用 - 將是linkType.link,for xfail -linkType.issue。
Overhave有能力將鏈接設置為在Allure測試案例中與其自己的管理員服務。當您生成魅力報告時,將自動設置鏈接。可以通過環境變量的設置啟用此功能`OVERHAVE_ADMIN_URL` :
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com此外, Overhave具有將鏈接設置為GIT存儲庫中的功能文件的能力。當您生成魅力報告時,將自動設置鏈接。可以通過環境變量的設置啟用此功能`OVERHAVE_GIT_PROJECT_URL` :
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo默認情況下,Web -Interface語言是ENG,無法切換(如果有必要的話 - 請創建`feature request`或自己貢獻自己)。
功能文本以及Pytest-bdd BDD關鍵字可與額外的模型配置配置,例如,RUS關鍵字已在框架中定義,可用於使用:
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" ),
)當您單擊“測試運行結果”頁面上的“按鈕創建請求請求”頁面時,創建了Pull-Request(用於Bitbucket)或Merge-Requrequest(對於GitLab)。此按鈕僅用於成功測試的結果。
注意:GitLab API身份驗證的最流行的案例之一是帶有服務帳戶的OAUTH2架構。根據該模式,您應該擁有OAuth2代幣,這可能具有較短的壽命,無法通過環境指定。在這種情況下, Overhave具有特殊的TokenizerClient,並具有自己的TokenizerClientsettings-這個簡單的客戶端可以從遠程自定義的gitlab tokenizer Service中獲取令牌。
Overhave可以使您當前的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 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"
)Overhave提供了`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項目文檔可以通過獅身人面像構建和簡單的make命令:
make build-docs默認情況下,該文檔將使用HTML構建器構建到_build目錄中。
根據GNU GPLV2許可證的條款分發。
如果您遇到任何問題,請在此處在此處報告,其中包含詳細說明。