【HttpRunner】Framework für Schnittstellenautomatisierungstests

Einführung

Auf der Python-Entwicklerkonferenz im Jahr 2018 habe ich etwas über das Open-Source-Framework für automatisierte Tests HttpRuuner erfahren, das das YAML/JSON-Format zur Verwaltung von Anwendungsfällen verwendet. Es kann aufzeichnen und konvertieren, um Anwendungsfallfunktionen zu generieren, wobei Anwendungsfälle vollständig vom Testcode getrennt werden Die Pflege von Testszenariodaten ist prägnanter als Excel. . Nutzen Sie hier Ihre Freizeit, um dieses Framework zu studieren, um automatisierte Schnittstellentests zu implementieren.

HttpRunner ist ein allgemeines Open-Source-Testframework für das HTTP(S)-Protokoll. Sie müssen nur ein Skript schreiben und verwalten YAML/JSON , um automatisierte Tests, Leistungstests und Online-Überwachung zu erreichen . , kontinuierliche Integration und andere Testanforderungen.

Mainstream-Framework für Schnittstellenautomatisierungstools:

Wie aus der obigen Abbildung ersichtlich ist, gibt die Technologieauswahl im Allgemeinen Requests+Python und HttpRunner Vorrang. Requests+Python wurde in Artikeln in der Kategorie „Zusammenfassung automatisierter Tests“ besprochen. Hier untersuchen wir HttpRunner.

Rahmenprozess

Haupteigenschaften:

Übernehmen Sie alle Funktionen von Requests und implementieren Sie problemlos verschiedene Testanforderungen von HTTP(S)
Beschreiben Sie Testszenarien mit YAML/JSON, um die Einheitlichkeit und Reproduzierbarkeit von Testfallbeschreibungen sicherzustellen. Wartbarkeit
Mit Hilfe von Hilfsfunktionen (debugtalk.py) kann komplexe dynamische Berechnungslogik einfach in Testskripten implementiert werden
Unterstützt einen vollständigen Testfall-Layering-Mechanismus, Vollständige Verwirklichung der Wiederverwendung von Testfällen
Unterstützung eines vollständigen Hook-Mechanismus vor und nach dem Testen
Antwortergebnisse unterstützen einen umfassenden Überprüfungsmechanismus
Basierend auf HAR Implementieren Sie Funktionen zur Schnittstellenaufzeichnung und Generierung von Anwendungsfällen (har2case)
In Kombination mit dem Locust-Framework können verteilte Leistungstests ohne zusätzlichen Aufwand implementiert werden
Die Ausführungsmethode verwendet CLI-Aufrufe, die perfekt in kontinuierliche Integrationstools wie Jenkins integriert werden können.
Der statistische Testergebnisbericht ist prägnant und klar, mit detaillierten statistischen Informationen und Protokollaufzeichnungen
Extrem skalierbar, einfach zu implementieren, die zweite Sekundärentwicklung und Web-Plattformisierung

 Umgebungsinstallation:

HttpRunner ist ein auf Python basierendes Testframework, das auf den Systemplattformen macOS, Linux und Windows ausgeführt werden kann. HttpRunner unterstützt alle Versionen von Python 3.4 und höher und es wird empfohlen, Python 3.4 und höher zu verwenden.

Verwenden Sie zum Installieren den Befehl pip: pip3 install httprunner [Da meine Umgebung mit zwei Python-Versionen ausgestattet ist, wird hier die Version python3.6 verwendet. Verwenden Sie daher den Befehl pip3. Wenn es sich um die Version python2.7 handelt, verwenden Sie den Befehl pip installieren]

Überprüfen Sie nach Abschluss der Installation Folgendes:

Wenn die Versionsnummer normal angezeigt wird, ist die Installation normal.

Grundfunktion

  1. Anwendungsfälle aufzeichnen und generieren

Vor der Konvertierung und Generierung von Testfällen müssen die erfassten Datenpakete in Dateien im HAR-Format exportiert werden. Die Vorgehensweise bei der Verwendung des Charles-Paketerfassungstools Proxy besteht darin, die Schnittstelle auszuwählen, die konvertiert werden muss (Sie können mehrere oder alle auswählen), mit der rechten Maustaste zu klicken, im schwebenden Menüverzeichnis auf [Exportieren ...] zu klicken und HTTP-Archiv auszuwählen (.har) als Format) und speichern Sie es; vorausgesetzt, der Dateiname, den wir speichern, ist test.har

 Testfälle konvertieren

Führen Sie den Befehl har2case im Befehlszeilenterminal aus, um test.har in eine Testfalldatei für HttpRunner zu konvertieren. Wenn Sie har2case zum Konvertieren des Skripts verwenden, wird es standardmäßig in das JSON-Format konvertiert

Fügen Sie -2y/--to-yml Parameter hinzu und konvertieren Sie sie in das YAML-Format

Die beiden Formate sind völlig gleichwertig. Das YAML-Format ist prägnanter und das JSON-Format unterstützt mehr Tools. Sie können nach Ihren persönlichen Vorlieben wählen.

Der generierte Anwendungsfall ist unten dargestellt:

JSON-Format:

YAML-Format:

config: wird als globales Konfigurationselement für den gesamten Testfallsatz verwendet
test: entspricht einem einzelnen Testfall
name Der Name davon Test< a i=3>-Anfrage Dieser Test sendet speziell verschiedene Informationen der http-Anfrage, wie folgt: URL-Anfragepfad (wenn base_url in der Konfiguration definiert ist, lautet der vollständige Pfad base_url + URL) a> Methode zur Anforderungsmethode POST, GET usw. Datenübergabe im Parameterwert Inhalt validieren an nach Abschluss der Anfrage überprüft werden. Alle Der Test gilt nur dann als bestanden, wenn alle Verifizierungsinhalte den Test bestehen, andernfalls schlägt er fehl.




  2. Führen Sie den Test durch

Wenn Sie möchten, dass der Testfall die Ausführung nachfolgender Testfälle stoppt, wenn während der Ausführung ein Fehler auftritt, können Sie dem Befehl --failfast hinzufügen. Beispiel: hrun test.yaml --failfast

Wenn Sie detailliertere Informationen wie Anforderungsparameter und Antwortdetails anzeigen müssen, können Sie die Protokollebene auf DEBUG setzen, d. h. --log-level debug zum Befehl hinzufügen. Beispiel: hrun test.yaml --log-level debug

Um die Problemlokalisierung zu erleichtern, können Sie beim Ausführen des Tests den Parameter --save-tests angeben, um die Zwischendaten während des laufenden Prozesses als Protokolldatei zu speichern.

Die Protokolldateien werden im Protokollordner im Projektstammverzeichnis gespeichert. Die generierten Dateien lauten wie folgt (XXX ist der Name des Testfalls):

XXX.loaded.json: Der Inhalt der Datenstruktur nach dem Laden des Testfalls, wobei alle Projektdateien einschließlich Testfalldateien (YAML/JSON), debugtalk.py, .env usw. geladen werden, z. B. test- quickstart-6.loaded .json
quickstart-6.parsed.json
XXX.summary.json: Der Inhalt der Datenstruktur vor der Generierung des Testberichts, z als test-quickstart-6.summary.json

  3. Prüfbericht

Standardmäßig befindet sich die generierte Testberichtsdatei im Berichtsordner im Projektstammverzeichnis und der Dateiname ist der Zeitstempel, als der Test gestartet wurde. HttpRunner wird mit einer Standardberichtsvorlage im Jinja2-Format geliefert

Das Format des Testberichts ist wie folgt:

In der Zusammenfassung werden die Gesamtinformationen dieses Tests aufgelistet, einschließlich der Teststartzeit, der Gesamtlaufzeit, der laufenden Python-Version und der Systemumgebung sowie der Laufergebnisstatistik.

Unter Details werden die laufenden Ergebnisse jedes Testfalls detailliert angezeigt.

Klicken Sie auf die Protokollschaltfläche für den Testfall. Die detaillierten Daten der Testfallausführung werden im Popup-Fenster angezeigt, einschließlich Anforderungsheader und -text, Antwortheader und -text, Überprüfungsergebnisse, Antwort und Antwortzeit (verstrichen). und andere Informationen.

Standardmäßig befinden sich die generierten Testberichtsdateien im Berichtsordner im Projektstammverzeichnis. Wenn Sie den Pfad zum Generieren des Berichts angeben müssen, können Sie den Parameter --report-dir verwenden.

Beispiel: hrun test.yaml --dirreport-name g:\home

Weitere erweiterte Funktionen wie Datenparametrisierung, Anwendungsfallschichtung, Umgebungsvariablen usw. finden Sie im offiziellen chinesischen Handbuch für eine detaillierte Einführung.

  4. Erstellen Sie ein Projekt

Die Verwendung von ähnelt der von Django, Sie müssen lediglich den Namen des neuen Projekts über --startproject angeben. Beispiel: hrun --startproject httpapidemo

Nach der Ausführung wird die Verzeichnisstruktur des neuen Projekts im angegebenen Verzeichnis generiert. Als Nächstes können wir Anwendungsfallbeschreibungsinformationen gemäß dem Schnittstellen-Modul-Szenario-Schichtungsprinzip des Testfalls hinzufügen.

Es ist zu beachten, dass wir bei der Organisation der im Testfall beschriebenen Dateiverzeichnisstruktur dem Prinzip der Konvention vor der Konfiguration folgen:

API-Schnittstellendefinition muss im API-Verzeichnis abgelegt werden
Moduldefinition muss im Suite-Verzeichnis abgelegt werden
Testszenariodateien müssen im abgelegt werden Testfallverzeichnis< /span> Das konkrete Beispiel der neuen Anwendungsfallverzeichnisstruktur lautet wie folgt:
Die relevanten Funktionsdefinitionen werden in debugtalk.py abgelegt

Konkrete Beispiele für die neue Anwendungsfall-Verzeichnisstruktur sind wie folgt:


          [Das Folgende ist das umfassendste Systemdiagramm zum Lernen von Softwaretestingenieuren, das Wissen über Architektur im Jahr 2023 erlernt, das ich zusammengestellt habe]


1. Python-Programmierung vom Einstieg bis zur Beherrschung


2. Praktische Umsetzung von Schnittstellenautomatisierungsprojekten  

3. Tatsächlicher Kampf des Web-Automatisierungsprojekts


4. Praktische Umsetzung des App-Automatisierungsprojekts 

5. Lebensläufe erstklassiger Hersteller


6. Testen und entwickeln Sie das DevOps-System 

7. Häufig verwendete automatisierte Testtools


8. JMeter-Leistungstest 

9. Zusammenfassung (kleine Überraschung am Ende)

Die Lebensdauer ist lang, also fügen Sie Öl hinzu. Jede Anstrengung wird nicht enttäuscht sein, solange Sie durchhalten, werden Sie irgendwann belohnt. Schätzen Sie Ihre Zeit und verfolgen Sie Ihre Träume. Vergessen Sie nicht Ihre ursprüngliche Absicht und machen Sie weiter. Ihre Zukunft liegt in Ihrer Hand!

Das Leben ist kurz und die Zeit kostbar. Wir können nicht vorhersagen, was in der Zukunft passieren wird, aber wir können die Gegenwart kontrollieren. Schätzen Sie jeden Tag, arbeiten Sie hart und machen Sie sich stärker und besser. Mit festem Glauben und beharrlichem Streben wird der Erfolg letztendlich Ihnen gehören!

Nur wenn Sie sich ständig selbst herausfordern, können Sie sich ständig selbst übertreffen. Verfolgen Sie weiterhin Ihre Träume und gehen Sie mutig voran, und Sie werden feststellen, dass der Prozess des Kampfes so schön und lohnenswert ist. Glaub an dich, du schaffst es!

Abschließend möchte ich mich bei allen bedanken, die meinen Artikel sorgfältig gelesen haben. Gegenseitigkeit ist immer notwendig. Obwohl es keine sehr wertvolle Sache ist, können Sie es direkt verwenden, wenn Sie es verwenden können:

Diese Informationen sollten das umfassendste und vollständigste Vorbereitungslager für Freunde von [Softwaretests] sein. Dieses Lager hat auch Zehntausende von Testingenieuren auf der schwierigsten Reise begleitet. Ich hoffe, es kann Ihnen auch helfen!​ 

Supongo que te gusta

Origin blog.csdn.net/2301_78276982/article/details/134896162
Recomendado
Clasificación