오버 헤드는 플라스크 관리자와 Pydantic을 기반으로 BDD의 웹 프레임 워크입니다.

PYPI에서 PIP를 통해 오버 헤드를 설치할 수 있습니다.
pip install overhave웹 인터페이스는 BDD 기능 관리를위한 기본 도구입니다. 그것은 다음으로 구성됩니다.
정보 - 도구 또는 프로젝트에 대한 선택적 정보가 포함 된 색인 페이지;
기능, 테스트 실행, 버전 및 태그 :
기능 레코드 관리에 대한 인터페이스를 제공하고 ID, 이름 작성자, 시간, 편집자 및 출판 상태에 대한 정보를 제공합니다. 스크립트 패널을 통해 항목을 검색, 편집 또는 삭제할 수 있습니다.
테스트 실행 관리에 대한 인터페이스를 제공하고 정보를 제공합니다.
테스트 실행에 해당하는 기능 버전을 포함합니다. 버전에는 원격 git 저장소에 대한 PR 링크가 포함되어 있습니다.
기능의 태깅에 사용되는 태그 값이 포함되어 있습니다.
테스트 사용자 - 테스트 사용자를보고 구성하기위한 섹션;
그룹 하위 섹션;
(개발 중).
기능 편집 모드에서 특수 스크립트 패널을 통해 오버레이 기능을 작성 및/또는 편집 할 수 있습니다. 기능에는 기존 형식의 `PRJ-NUMBER` 및 시나리오 텍스트가있는 응용 프로그램, 고유 이름, 지정된 작업 목록에 의해 등록되어 있어야합니다.
스크립트 패널 에는 인터페이스 오른쪽에 Pytest-BDD 단계 테이블이 있습니다. 이 단계는 적절한 고정 장치 모듈에 정의되어야하며 시작시 응용 프로그램에 등록되어 표시됩니다.
기능 편집 모드에서 오버레이 스크립트 패널의 예
오버 헤드는 웹 인터페이스에서 테스트 실행 후 매력 보고서를 생성합니다. Pytest를 통해 수동으로 테스트를 실행하면 이러한 결과는 Allure CLI 도구와 함께 Allure Report로 변환 될 수 있습니다. 이 보고서에는 기능에 설명 된 시나리오 설명이 포함되어 있습니다.
오버 하브 기능 실행 후 생성 된 매력 보고서의 예
오버 하브 에는 특수 데모 모드 (개발 중)가 있으며 프레임 워크 데모 및 수동 디버깅 / 테스트에 사용할 수 있습니다. 이 프레임 워크는 디버그 모드에서 쉬운 서버 실행을위한 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 패러다임에서는 비평 할 수 없습니다. 따라서 해당 소비자를 정확하게 사용하는 것이 좋습니다.
오버 하브 에는 서비스 웹 인터페이스를 시작하고 소비자를 실행하며 기본 데이터베이스 작업을 실행하는 간단한 방법을 제공하는 CLI가 있습니다. 예는 다음과 같습니다.
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4 참고 : 서비스 시작은 일련의 설정 세트를 사용하므로 `OVERHAVE_` `OVERHAVE_DB_URL` 하여 가상 환경을 통해 설정할 수 있습니다. 컨텍스트 주입을 통해보다 명백한 방식으로 설정을 구성하려면 문서의 다음 부분을 참조하십시오.
과상으로 구성된 텍스트 객체의 준비된 인스턴스를 사용하여 응용 프로그램 컨텍스트 주입을 통해 서비스를 구성 할 수 있습니다. 이러한 컨텍스트는 초기화 된 `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` 는 컨텍스트 구성의 예입니다오버 하브는 Redis 스트림을 기반으로 한 프로듀서 소비자 아키텍처를 보유하고 있으며 3 가지 소비자 유형을 지원했습니다.
`overhave_test_execution_factory` ;`overhave_publication_factory` ;`overhave_emulation_factory` . 참고 : `overhave_test_execution_factory` 는 컨텍스트 주입 능력을 가지고 있으며 `overhave_admin_factory` 와 같이 사용자 정의 컨텍스트가 풍부 할 수 있습니다.
오버 헤드는 자체 특별 프로젝트 구조를 지원합니다.
올바른 접근법은 기능 , 비품 및 단계 디렉토리를 포함하는 루트 디렉토리 (현재 저장소 내부의 "데모")를 만드는 것입니다.
기능 디렉토리에는 별도의 디렉토리와 다른 기능 유형이 포함되어 있으며 각 기능 유형은 사전 정의 된 Pytest-BDD 단계 세트에 해당합니다.
Fixtures 디렉토리에는 다양한 기능 유형으로 분할 된 일반적인 Pytest 모듈이 포함되어 있습니다. 이 모듈은 Pytest-BDD 분리 테스트 실행에 사용됩니다. Pytest-BDD 단계 컬렉션의 특수 메커니즘 때문에 필요합니다.
Steps 디렉토리에는 Different Feature 유형으로 분할 된 Pytest-BDD 단계 패키지가 포함되어 있습니다. 각 단계 하위 디렉토리에는 지원되는 기능 유형에 따라 자체 선언 된 단계가 있습니다.
따라서 고유 한 단계와 Pytest 비품으로 다양한 제품 방향의 직접 수평 구조를 만들 수 있습니다.
참고 :이 구조는 오버 헤드 애플리케이션에 사용됩니다. 형성된 데이터는 웹 인터페이스 스크립트 패널 에서 등록 된 기능 유형을 지정할 수 있습니다. 또한이 구조는 스크립트 패널 의 오른쪽에 어떤 단계가 표시 될지 정의합니다.
오버레이는 고유 한 업데이트로 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이 포함되어 있으므로 오버레이는 Allure Link를 첨부하여 보고서에 첨부합니다. 비활성화 - xfail -linktype.issue의 경우 linktype.link가됩니다.
오버 헤드는 매력 테스트 케이스에서 자체 관리 서비스에 대한 링크를 설정할 수 있습니다. Allure Report를 생성하면 링크가 자동으로 설정됩니다. 이 기능은 환경 변수 설정을 통해 활성화 될 수 있습니다 `OVERHAVE_ADMIN_URL`
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com 또한 오버 헤드는 git 저장소에서 피처 파일에 대한 링크를 설정할 수 있습니다. Allure Report를 생성하면 링크가 자동으로 설정됩니다. 이 기능은 환경 `OVERHAVE_GIT_PROJECT_URL` 설정을 통해 활성화 될 수 있습니다.
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo 웹 인터페이스 언어는 기본적으로 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 " ,
)오버레이는 Bitbucket 또는 Gitlab이 호스팅하는 원격 git 저장소로 새로운 기능이나 변경을 보낼 수 있습니다. 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 request (gitlab 용)는 테스트 실행 결과 페이지에서 버튼을 클릭 할 때 생성됩니다. 이 버튼은 성공 테스트 실행 결과에만 사용할 수 있습니다.
참고 : Gitlab API 인증의 가장 인기있는 사례 중 하나는 서비스 계정이있는 OAUTH2 스키마입니다. 이 스키마에 따르면 OAUTH2 토큰이 있어야하며, 이는 수명이 짧고 환경을 통해 지정할 수 없습니다. 이러한 상황에서 오버 헤드는 자체 토큰 화기 클리엔스 세팅과 함께 특별한 토큰 화기 클라이언트를 가지고 있습니다.
오버 하브는 현재 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-id오버레이는 렌더링을 위해 사용자 정의 index.html 파일을 설정할 수 있습니다. 파일로가는 경로는 환경을 통해 설정하고 컨텍스트로 설정할 수 있습니다.
admin_settings = OverhaveAdminSettings (
index_template_path = "/path/to/index.html"
) 오버 스 (Over Have)는 `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` '를 사용하는 프레임 워크는 버킷이 존재하지 않으면 원격 저장소에서 애플리케이션 버킷을 생성합니다.
오버 스 바프 에는 Fastapi를 기반으로 자체 응용 프로그램 프로그래밍 인터페이스가 있습니다.
Swagger를 통해 OpenApi.json을 지나치게합니다
내장 Swagger를 통해 현재 가능성을 표시 할 수 있습니다. API를 실행하고 브라우저에서 http : // localhost : 8000을 엽니 다.
overhave api -p 8000 인터페이스는 OAUTH2 체계를 통해 승인을 받았으므로 사용을 위해 `OVERHAVE_API_AUTH_SECRET_KEY` 설정해야합니다.
현재 API는 리소스 유형을 구현합니다.
기부금은 매우 환영합니다.
프로젝트 설치는 매우 쉽고 준비된 명령이 거의 없다 (Ubuntu에서만 사전 인센트를 만들 수 있으므로 OS에 대한 동일한 패키지를 수동으로 설치할 수 있음) : :
make pre-init
make init패키지 관리는시에 의해 제공됩니다.
테스트는 Tox로 실행할 수 있습니다. Docker-Compose는 데이터베이스와 같은 다른 서비스 준비 및 서빙에 사용됩니다. 간단한 테스트 및 라이터 실행 :
make up
make test
make lint파일 만들기를 참조하고 유용한 바로 가기를 발견하십시오. Docker 컨테이너에서도 테스트를 실행할 수도 있습니다.
make test-docker프로젝트 문서는 스핑크스 및 Simple Make Command를 통해 구축 할 수 있습니다.
make build-docs기본적으로 문서는 HTML Builder를 _build 디렉토리로 사용하여 구축됩니다.
GNU GPLV2 라이센스의 조건에 따라 배포됩니다.
문제가 발생하면 자세한 설명이있는 섹션 문제에서 여기에보고하십시오.