Übereinstimmung ist das Web-Framework für BDD: skalierbar, konfigurierbar, einfach zu bedienen, basierend auf Flask Admin und Pydantic.

Sie können Über durch PIP von PYPI übereinstimmen :
pip install overhaveDie Web-Schnittstelle ist ein grundlegendes Tool für die BDD-Funktionsverwaltung. Es besteht aus:
Info - Indexseite mit optionalen Informationen zu Ihrem Tool oder Projekt;
Funktionen, Testläufe, Versionen und Tags:
Gibt eine Schnittstelle für Features Records Management und bietet Informationen zu ID-, Namensautor-, Zeit-, Editor- und Veröffentlichungsstatus. Es ist möglich, Elemente über das Skriptbereich zu suchen, zu bearbeiten oder zu löschen.
Gibt eine Schnittstelle für Test -Runs -Verwaltung und bietet Informationen zu.
Enthält Feature -Versionen in den Testläufen; Versionen enthält PR-Links zum Remote-Git-Repository.
Enthält Tags -Werte, die für die Markierung der Feature verwendet werden.
Testbenutzer - Abschnitt zum Anzeigen und Konfigurieren von Testbenutzern;
Gruppenuntersuchungen;
(in der Entwicklung).
Über durchliegende Funktionen können im Feature -Bearbeitungsmodus erstellt und/oder bearbeitet werden. Die Funktion sollte von der Anwendung, einem eindeutigen Namen, der angegebenen Aufgabenliste mit dem herkömmlichen Format `PRJ-NUMBER` und Szenario-Text registriert sein.
Das Skript-Panel verfügt über eine PyTest-BDD-Schritte-Tabelle auf der rechten Seite der Schnittstelle. Diese Schritte sollten in geeigneten Fixture-Modulen definiert und bei der angezeigten Startanwendung registriert werden.
Beispiel für das Überdachungs -Skript -Panel im Feature Bearbeitungsmodus
Overstaved generiert den Allure-Bericht nach der Ausführung der Ausführung in Web-Schnittstellen. Wenn Sie Tests manuell über PyTest ausführen, können diese Ergebnisse in den Allure -Bericht auch mit dem Allure CLI -Tool umgewandelt werden. Dieser Bericht enthält Szenarienbeschreibungen, wie sie in Funktionen beschrieben werden.
Beispiel eines generierten Allure -Berichts nach Ausführung der Übereinstimmung von Overwave 's Feature
Übereinstimmung hat einen speziellen Demo-Modus (in der Entwicklung), das möglicherweise für die Framework-Demonstration und das manuelle Debuggen / Tests verwendet werden kann. Das Framework bietet CLI -Einstiegspunkte für den einfachen Server im Debug -Modus:
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 consumerHinweis : Sie können den Administrator im speziellen Modus ausführen, für den keine Verbraucher erforderlich sind. In diesem Modus wird Threadpool zum Ausführen von Test- und Veröffentlichungsaufgaben asynchron ausgeführt:
overhave-demo admin --threadpool --language=ruDieser Threadpool -Modus ist jedoch im Kubernetes -Paradigma unvergleichlich. Es wird daher dringend empfohlen, die entsprechenden Verbraucher genau zu verwenden.
Overwave verfügt über eine CLI, die eine einfache Möglichkeit bietet, eine Web-Schnittstelle zu starten, Verbraucher auszuführen und grundlegende Datenbankvorgänge auszuführen. Beispiele sind unten:
overhave db create-all
overhave admin --port 8080
overhave consumer -s publication
overhave api -p 8000 -w 4 HINWEIS : Das Start von Service bietet eine Reihe von Einstellungen, sodass Sie diese über die virtuelle Umgebung mit Präfix `OVERHAVE_` setzen können, z. B.` `OVERHAVE_DB_URL` . Wenn Sie Einstellungen durch die Kontextinjektion in expliziterer Weise konfigurieren möchten, finden Sie im nächsten Teil von DOCs.
Der Dienst könnte über die Injektion von Anwendungskontexten mit vorbereiteter Instanz des OverhaveContext -Objekts konfiguriert werden. Dieser Kontext könnte mit der Funktion `set_context` der initialisierten `ProxyFactory` -Instanz festgelegt werden.
Zum Beispiel hat `my_custom_context` vorbereitet. Daher könnte das Start von Anwendungen mit dem Follow-Code realisiert werden:
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 )Notiz :
`overhave_app` ist die vorbereitete Flaskanwendung mit bereits aktiviertem Bereich`overhave_factory` ist eine Funktion für die LRU -Instanz der Überkindung`ProxyFactory` ; Die Instanz hat einen Zugriff auf Anwendungskomponenten, die direkt in `overhave_app` verwendet werden.`my_custom_context` ist ein Beispiel für die Kontextkonfiguration, siehe aOverstavel hat die Architektur der Produzenten-Verbraucher, die auf Redis-Streams basiert und 3 Verbrauchertypen unterstützt:
`overhave_test_execution_factory` ;`overhave_publication_factory` ;`overhave_emulation_factory` . Hinweis : Der `overhave_test_execution_factory` verfügt über eine Kontextinjektion und könnte mit dem benutzerdefinierten Kontext als` `overhave_admin_factory` angereichert werden.
Overkave unterstützt seine eigene spezielle Projektstruktur:
Der richtige Ansatz besteht darin, ein Root -Verzeichnis (wie "Demo" im aktuellen Repository) zu erstellen, das Funktionen , Vorrichtungen und Schritte enthält.
Das Features- Verzeichnis enthält verschiedene Merkmalstypen als separate Verzeichnisse, von denen jede vordefinierte PyTest-BDD-Schritte entspricht.
Das Spielverzeichnis enthält typische PyTest -Module, die von verschiedenen Funktionstypen aufgeteilt wurden. Diese Module werden für isolierte Testläufe von PyTest-BDD verwendet. Dies ist notwendig, da der besondere Mechanismus der Sammlung von PyTest-BDD-Stufen ist.
Das Stufenverzeichnis enthält PyTest-BDD-Stufenpakete, die auch von verschiedenen Funktionstypen aufgeteilt werden. Jedes Schritte -Subdadumanweisungsverzeichnis hat seine eigenen deklarierten Schritte entsprechend dem unterstützten Feature -Typ.
Daher ist es möglich, Ihre eigene horizontale Struktur verschiedener Produktrichtungen mit einzigartigen Schritten und PyTest -Vorrichtungen zu erstellen.
HINWEIS : Diese Struktur wird in der Übereinstimmung verwendet. Die geformten Daten bieten die Möglichkeit, registrierten Feature-Typen im Web-Schnitt -Skriptbereich anzugeben. Außerdem definiert diese Struktur, welche Schritte auf der rechten Seite des Skriptbereichs angezeigt werden.
OverstaVe hat das Textformat der eigenen Special Feature, das Gherkin von PyTest-BDD mit eindeutigen Updates erbt:
`@severity.blocker` );`PRJ-1234` ;Ein Beispiel für ausgefüllte Feature -Inhalte befindet sich in feature_example.rst.
Übereinstimmungen implementiert Lösung für die Verwendung von PyTest -Markern mit benutzerdefinierten zusätzlichen Informationen:
Beispiele:
@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 featureWenn die Vernunft URL enthält, wird übersteuert , dass der Link für den Bericht überlegt wird: Für deaktiviert - linkType.link für xfail - linkType.issue.
OverstaVe hat die Möglichkeit, Links zu seinem eigenen Administratordienst in Allure-Test-Cases festzulegen. Der Link wird automatisch festgelegt, wenn Sie Allure -Bericht erstellen. Diese Funktion kann über die Einrichtung der `OVERHAVE_ADMIN_URL` aktiviert werden.
export OVERHAVE_ADMIN_URL=https://overhave-admin.myorg.com Außerdem kann Overstave Links zur Funktionsdatei in Git -Repository festlegen. Der Link wird automatisch festgelegt, wenn Sie Allure -Bericht erstellen. Diese Funktion kann über die Einrichtung der `OVERHAVE_GIT_PROJECT_URL` aktiviert werden.
export OVERHAVE_GIT_PROJECT_URL=https://git.myorg.com/bdd-features-repo Die Web -Schnitt -Sprache ist standardmäßig Eng und kann nicht umgeschaltet werden (wenn dies erforderlich ist - erstellen Sie bitte eine `feature request` oder beitragen Sie sich selbst).
Der Feature-Text sowie der PyTest-BDD-BDD-Schlüsselwörter können mit Überdachungsmodellen konfiguriert werden, beispielsweise sind RUS-Schlüsselwörter bereits in Framework definiert und zur Verwendung verfügbar:
from overhave . extra import RUSSIAN_PREFIXES
language_settings = OverhaveLanguageSettings ( step_prefixes = RUSSIAN_PREFIXES )Hinweis : Sie können Ihr eigenes Präfix-Wert-Mapping für Ihre Sprache erstellen:
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 " ,
)Übereinstimmung bietet die Möglichkeit, Ihre neuen Funktionen oder Änderungen an das Remote -Git -Repository zu senden, das von Bitbucket oder GitLab gehostet wird. Die Integration in Bitbucket ist nativ, während die Integration in GitLab die Python-Gitlab-Bibliothek verwendet.
Sie können die erforderlichen Einstellungen für Ihr Projekt festlegen:
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" ),
)Der Pull-Request (für Bitbucket) oder Merge-Request (für GitLab) erstellt, wenn Sie auf die Seite "Schaltfläche" Klicken Sie auf der Seite "Pull-Anforderung erstellen". Diese Schaltfläche ist nur für den Ergebnis von Erfolgstests verfügbar.
Hinweis : Einer der beliebtesten Fälle der Gitlab -API -Authentifizierung ist das OAuth2 -Schema mit Servicekonto. Laut diesem Schema sollten Sie OAuth2-Token haben, was möglicherweise eine kurze Lebensdauer haben und nicht durch die Umgebung festgelegt werden könnte. Für diese Situation hat Overting Special TokenizerClient mit seinen eigenen Tokenizerclientsettings - dieser einfache Kunde könnte das Token von einem Remote Custom Gitlab Tokenizer -Dienst übernehmen.
Übereinstimmung bietet die Fähigkeit, den Status Ihres aktuellen Git -Repositorys mit Datenbank zu synchronisieren. Dies bedeutet, dass Ihre Funktionen, die sich in der Datenbank befinden, aktualisiert werden können - und die Aktualisierungsquelle ist Ihr Repository.
Zum Beispiel : Sie mussten einen Massendatenersatz im Git -Repository durchführen, und jetzt möchten Sie Änderungen an der Remote -Datenbank vorlegen. Diese nicht so einfache Angelegenheit könnte mit übereinstimmiger spezieller Werkzeuge gelöst werden:
Sie können die erforderlichen Einstellungen für Ihr Projekt festlegen:
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 syncSie können dieses Tool mit einem übermäßigen Demo -Modus testen. Standardmäßig werden 3 Funktionen in der Demo -Datenbank erstellt. Versuchen Sie einfach, sie zu ändern oder neue Funktionen zu erstellen und den Befehl Synchronisation auszuführen. Sie erhalten das Ergebnis.
overhave-demo sync-run # or with '--create-db-features'Übereinsteue unterstützt die Validierung vorhandener Feature -Dateien. Befehl Versuchen Sie, Funktionen zu analysieren und definierte Feature -Info -Format zu füllen. Wenn es ein Problem gibt, wird ein besonderer Fehler geworfen.
overhave sync validate-features
overhave sync validate-features --raise-if-nullable-id
overhave sync validate-features --pull-repositoryUnd ja, Sie können es mit dem Demo -Modus versuchen:
overhave-demo validate-features
overhave sync validate-features -r # --raise-if-nullable-idÜbereinstimmung bietet die Möglichkeit, eine benutzerdefinierte Index.html -Datei zum Rendern festzulegen. Der Path -to -Datei kann sowohl in der Umgebung als auch mit dem Kontext festgelegt werden:
admin_settings = OverhaveAdminSettings (
index_template_path = "/path/to/index.html"
) Übereinstarrung bietet mehrere Autorisierungsstrategien, die durch `AuthorizationStrategy` " deklariert wurden:
Angemessene Strategie und zusätzliche Daten sollten in `OverhaveAuthorizationSettings` eingesetzt werden, beispielsweise könnte die LDAP -Strategie wie folgt konfiguriert werden:
auth_settings = OverhaveAuthorizationSettings ( auth_strategy = AuthorizationStrategy . LDAP )
ldap_manager_settings = OverhaveLdapManagerSettings ( ldap_admin_group = "admin" )Übereinstimmungen implementiert Funktionen für S3 -Cloud -Interaktionen wie Erstellung und Löschen von Bucket, Dateien hochladen, herunterladen und löschen. Das Framework bietet die Möglichkeit, Berichte und andere Dateien im Remote S3 Cloud -Speicher zu speichern. Sie können Ihre Umgebung mit den folgenden Einstellungen bereichern:
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 >Optional können Sie auch die Standardeinstellungen ändern:
OVERHAVE_S3_VERIFY=false
OVERHAVE_S3_AUTOCREATE_BUCKETS=true Das Framework mit aktiviertem `OVERHAVE_S3_AUTOCREATE_BUCKETS` Flag erstellt Anwendungsschale im Remotespeicher, wenn Eimer nicht vorhanden sind.
Overstave hat eine eigene Anwendungsprogrammierschnittstelle, die auf Fastapi basiert.
OpenAPI.json durch die Prahlerei übereinstimmen
Aktuelle Möglichkeiten können durch integrierte Prahlerei angezeigt werden - Führen Sie einfach die API aus und öffnen Sie http: // localhost: 8000 in Ihrem Browser.
overhave api -p 8000 Die Schnittstelle hat eine Autorisierung über das OAuth2 -Schema, daher sollten Sie für die Verwendung von `OVERHAVE_API_AUTH_SECRET_KEY` einrichten.
Im Moment implementiert API Arten von Ressourcen:
Beiträge sind sehr willkommen.
Die Projektinstallation ist sehr einfach und dauert nur wenige vorbereitete Befehle (erstellen Sie nur für Ubuntu. Sie können gleiche Pakete für Ihr Betriebssystem manuell installieren):
make pre-init
make initDas Paket -Management wird von Poesie bereitgestellt.
Tests können mit Tox durchgeführt werden. Docker-Compose wird für andere Dienstevorbereitungen und -dienste wie Datenbank verwendet. Einfache Tests und Linker Ausführung:
make up
make test
make lintBitte siehe Datei machen und nützliche Verknüpfungen entdecken. Sie können Tests auch im Docker -Container ausführen:
make test-dockerDie Projektdokumentation kann über Sphinx und einfachen Befehl erstellt werden:
make build-docsStandardmäßig wird die Dokumentation mit dem HTML -Builder in das _build -Verzeichnis erstellt.
Verteilt nach den Bestimmungen der GNU GPLV2 -Lizenz.
Wenn Sie auf Probleme stoßen, melden Sie sie bitte hier in Abschnittsproblemen mit einer detaillierten Beschreibung.