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许可证的条款分发。
如果您遇到任何问题,请在此处在此处报告,其中包含详细说明。