Testen von APIs mit Postman und Excel

Hallo allerseits, ich bin der Leiter der Testabteilung, und kürzlich wurde eine Aufgabe zum Testen der API angezeigt. Um es zu lösen, habe ich das neue Postman- und JavaScript-Tool für mich gemeistert.

Zunächst schrieb ich für jede API meine Sammlungen und bereitete Testdaten im JSON-Format vor. Dies ist recht praktisch, aber bei einer großen Anzahl von Tests und Sammlungen wird die Wartung unrentabel. Und es ist nicht bequem, Daten in JSON zu validieren.

Um diese Probleme zu lösen, habe ich ein Makro für Excel und eine Sammlung in Postman geschrieben. Jetzt habe ich in Postman eine Sammlung für alle APIs und einen Standardsatz von Funktionen zum Verarbeiten eingehender Daten und zum Überprüfen der zurückgegebenen Ergebnisse. Ich habe es geschafft, die Testdatenverwaltung und die Abfrageausführungssequenz nach Excel zu übertragen.

Was war


1. JSON mit Daten


Zuvor wurde das Testkit in dieser Form gespeichert

2. 2. Die Reihenfolge der Abfrageausführung mit JS-Handlern wurde in Postman-Sammlungen gespeichert.



Was ist geworden


1. Die Testsuite wurde nach Excel verschoben



Alle Daten werden in Excel eingegeben (Steuerschlüsselzeichen: R, H, I usw. Ich werde unten schreiben) und dann mithilfe eines Makros in das JSON-Format übertragen:



2. Im Postboten



Das Experiment wurde mit einem Standardsatz von CRUD-Operationen durchgeführt, die weiter erweitert werden können.

Da in Postman alle Operationen nur im Rahmen der Anfrage ausgeführt werden, musste ich eine leere Get-Anfrage eingeben, an deren Ende die nächste Anfrage aus der Sequenz ermittelt wird. Führen Sie JS-Code vor der Anforderung aus und ermitteln Sie die erste Anforderung, ohne dass ein Leerzeichen fehlgeschlagen ist.

In allen Anforderungen sind die Abschnitte "Voranforderungsskript" und "Test" leer, der gesamte Code ist für Anforderungen vereinheitlicht und wird in den allgemeinen Abschnitten des Voranforderungsskripts und des Ordners "Test der API-Sammlung" gespeichert.



Bei allen Anforderungen ist es wichtig, bei POST- und PUT-Anforderungen auf die URL und den Body-Abschnitt zu achten. Ihre Werte werden durch Variablen bestimmt, deren Werte von JSON mit Daten eingegeben werden.



Nun zu den Tests selbst




Wie man Excel liest . Die erste nicht leere Zeile ist die Nummer des Testfalls, dh der Testfall wird vertikal gespeichert und auf dieser Seite befinden sich 9 Testfälle. In der aktuellen Gruppe wird in jedem Testfall zuerst eine POST-Anforderung ausgeführt und dann Löschen.

So starten Sie die Json-Generierung aus Excel . Drücken Sie in Excel F11 und gehen Sie zu "EtaBook", dort führen Sie das Makro aus.

Stichworte


R - Anfrage bedeutet den Beginn einer neuen Anfrage, in der zweiten Zelle der Zeile wird der Typ der Anfrage gespeichert, in der dritten die Adresse, an die Sie sich wenden müssen. Bitte beachten Sie, dass Sie in der URL Postman-Variablen angeben können


Der Wert aus der Variablen wird abgerufen

H - Daten zur Überprüfung im Header, bisher wurde nur der Antwortcode eingegeben, Postman prüft nur im Postman. Es ist wichtig, dass der Name in Excel der gleiche "Antwortcode" ist oder in Postman korrigiert wird



I, I2 ... - Der Abschnitt Eingabedaten unterstützt die Speicherung von Datenmodellen für jede Verschachtelung. Die Abbildung rechts von I ist für die Verschachtelungsebene verantwortlich. Der nächste Datensatz wird wie folgt in JSON eingeschlossen. Wenn die Variable, in der die Daten gespeichert sind, leer ist, wird sie nicht hinzugefügt. Das heißt, wenn die inn-Variable keinen Wert enthält, wird sie nicht hinzugefügt, und die Hauptvariable wird hinzugefügt, da sie das Modell speichert. Wenn das gesamte Modell leer ist, wird es auch nicht hinzugefügt.


Die Daten in diesem Abschnitt werden im Anfragetext übermittelt.



O, O2 ... - Abschnitt der Ausgabeparameter, sie werden mit denen verglichen, die durch Antwort zurückgegeben werden. Wie der Abschnitt Eingabe unterstützt er die Modellspeicherung.


Beim Vergleichen werden die Daten in Zeichenfolgen konvertiert, ich habe zusätzlich den Rekursionsgrad begrenzt, dieser kann entfernt werden

PO - Postman-Ausgabe: Die Werte aus diesem Abschnitt werden dem Antworttext der Anforderung mit dem Namen der Variablen entnommen und in die Postman-Variable geschrieben.


In Excel reicht es aus, ein beliebiges Zeichen einzufügen. Der Wert aus der Antwort und nicht aus Excel wird in die Variable geschrieben


Dieser Abschnitt wird zum Speichern von Daten zwischen Skripten benötigt, um beispielsweise ein Objekt mit der ID zu löschen, die in der vorherigen Anforderung erstellt wurde

PC - Postman-Befehl, der nur einen "Beenden" -Befehl eingeführt hat. Er wird verwendet, um die Beendigung nach Ausführung der aktuellen Anforderung zu erzwingen. Nützlich für einen negativen Test, um keinen Schritt zum Löschen des erstellten Objekts zu verursachen.


Durch Eingabe dieses Befehls konnten sowohl positive als auch negative Tests auf einem Blatt gespeichert werden



PI - Postman Input, Werte aus diesem Abschnitt werden vor der URL-Definition in Postman-Variablen geschrieben


Dies kann hilfreich sein, wenn Sie die in der Anforderungs-URL angegebenen Variablen überschreiben müssen.

Übrigens können Sie Daten aus Postman-Variablen in den bereitgestellten Daten verwenden, dafür müssen Sie ein spezielles Design verwenden



In Fall 1 haben wir den erhaltenen Wert in eine Variable eingegeben, in Fall 2 haben wir ihn verwendet. Es kann nicht nur im nächsten Fall verwendet werden, sondern auch im aktuellen bei der nächsten Anforderung. Beispielsweise kann es erforderlich sein, wenn die Definition des Objekts für die Änderung nicht der URL folgt, sondern dem Wert der Variablen in der Anforderung entspricht.

Vorbereitung für den Lauf


Führen Sie nun den Postman-Läufer aus, wählen Sie die gewünschte Sammlung aus und laden Sie die Datei mit den Testdaten hoch:



Wir werden das folgende Set servieren:



Hier werden 15 Tests beschrieben, wobei die Schritte 1 bis 11, 13, 15 mit einem Ergebnis von 200 für eine POST-Anforderung positiv sind und die Schritte 12, 14 mit einem Ergebnis von 400 negativ sind. Es werden keine Informationen in die Datenbank eingegeben, und daher ist der Abschnitt Ausgabe leer, und der Befehl wird angezeigt beenden. Dieser Befehl unterbricht die Ausführung der Sequenz und die Anforderung zum Löschen von "Löschen" wird nicht gesendet.

Nach den Fällen 1-11, 13, 15 merken wir uns die ID, die dem neuen Objekt zugewiesen wurde, und löschen es dann.

Wir starten



Alle 15 Tests waren erfolgreich, das Bild zeigt Test 14, bei dem Delete nach POST nicht aufgerufen wird

In den Tests 1-11,13,15 nach dem POST wird das Löschen des erstellten Objekts aufgerufen:



Zusammenfassung


  • Die Reihenfolge der Anforderungen zum Testen der API erfolgt in Excel und wird in Postman verarbeitet.
  • Alle Testdaten werden auch in Excel gerendert. Sie können bequem verwaltet und validiert werden. Zumindest bequemer als im JSON-Format.
  • Die Postman-Sammlung ist standardisiert und muss beim Testen ähnlicher APIs nicht verbessert werden.

Referenzen


  1. GitHub-Repository gibt es Excel und die Postman-Sammlung
  2. In der Entwicklung wurde ein von Tim Hall verfasstes VBA-JSON-Tool verwendet.


Update vom 15.10.2019

1. Die Möglichkeit, JSON-Dateien zu generieren, ohne Excel auszuführen, wurde verbessert. Fügen Sie sie in das Git GenerateAll.cmd ein, in dem das vb-Skript GenerateJsonFiles.vbs ausgeführt wird. Das aufgerufene Skript durchsucht den aktuellen Ordner und alle Unterordner und generiert JSON-Dateien
2. Führen Sie RunAll.cmd aus, um alle generierten JSON-Datendateien auszuführen, auch den aktuellen Ordner und alle Unterordner. Neben jedem von ihnen wird output-report.log mit den Ergebnissen des Laufs abgelegt.

Jetzt sollte das Anschrauben an CI kein Problem sein. Sie können die json-Generierung auch an der git-Bereitstellung befestigen und Daten in Excel auf Änderungen in json-Dateien vergleichen.

Source: https://habr.com/ru/post/de467127/


All Articles