Wie funktioniert das Testen von APIs mit Postman-Scripts und wie schreibe ich einfache Tests?
Postman ist ein weit verbreitetes Tool für die Entwicklung, das Testen und die Dokumentation von APIs (Application Programming Interfaces). Eine zentrale Funktion von Postman ist die Möglichkeit, automatisierte Tests direkt innerhalb der API-Anfragen zu schreiben und auszuführen. Diese Tests helfen dabei, zu überprüfen, ob die API wie erwartet funktioniert – sei es, um sicherzustellen, dass die zurückgegebenen Daten korrekt sind, der Statuscode stimmt oder bestimmte Header vorhanden sind. Das Testen mit Postman-Scripts basiert auf JavaScript, das im sogenannten "Tests"-Tab einer Anfrage geschrieben wird. Dort können Entwickler Bedingungen formulieren, die nach der Ausführung der Anfrage ausgewertet werden. Dies ermöglicht es, Fehler frühzeitig zu erkennen, die Stabilität der API sicherzustellen und Testabläufe zu automatisieren.
Funktionsweise der Postman-Test-Scripts
Sobald eine API-Anfrage in Postman abgesendet wird, führt das Tool den Request aus und erhält eine Antwort vom Server. Im Anschluss daran wertet Postman das im "Tests"-Tab hinterlegte Script aus. Das Script hat Zugriff auf das Antwortobjekt und weitere Informationen über die Anfrage, wie z. B. Statuscode, Antworttext oder Header. Die Postman-Testumgebung stellt eine Reihe von Helferfunktionen bereit, um diese Daten einfach abzufragen und auszuwerten. Beispielsweise gibt es die Funktion pm.response.code, um den HTTP-Statuscode zu prüfen, oder pm.response.json(), um die Antwort als JSON-Objekt zu erhalten. Test-Scripts bestehen meistens aus Assertions, also Bedingungen, die wahr sein müssen, damit der Test als bestanden gilt. Eine Bibliothek, die dafür oft genutzt wird, heißt pm.expect und basiert auf der bekannten Assertion-Bibliothek Chai. Postman fasst die Resultate aller Test-Assertions zusammen und zeigt sie in der Benutzeroberfläche an, sodass der Entwickler sofort sieht, ob alle Prüfungen erfolgreich waren.
Einfache Tests mit Postman schreiben
Um in Postman einen einfachen Test zu schreiben, öffnet man zunächst eine API-Anfrage und wechselt zum "Tests"-Tab. Dort kann man JavaScript-Code eingeben, der die Antwort überprüft. Ein typischer Anfang besteht darin, zu testen, ob die API mit einem Statuscode 200 geantwortet hat, was meist für "Erfolg" steht. Dazu schreibt man:
pm.test("Statuscode ist 200", function () { pm.response.to.have.status(200);});Diese Zeilen definieren einen Test mit dem Namen "Statuscode ist 200". Die Funktion prüft, ob der Statuscode der Antwort genau 200 ist. Wenn ja, gilt der Test als bestanden.
Ein weiterer einfacher Test kann überprüfen, ob die Antwort im JSON-Format ein bestimmtes Feld enthält. Angenommen, die API liefert eine JSON-Antwort mit einem Feld success, das auf true gesetzt sein soll, dann schreibt man:
pm.test("Erfolgsfeld ist true", function () { var jsonData = pm.response.json(); pm.expect(jsonData.success).to.eql(true);});Hier wandelt pm.response.json() die Antwort in ein JavaScript-Objekt um, damit man bequem auf die Felder zugreifen kann. Anschließend wird mit pm.expect überprüft, ob das Attribut success den Wert true besitzt.
Schließlich kann man auch testen, ob ein bestimmter Header in der Antwort vorhanden ist, beispielsweise ein Content-Type Header, der angibt, ob die Antwort JSON-Daten enthält:
pm.test("Content-Type ist application/json", function () { pm.response.to.have.header("Content-Type", "application/json");});Insbesondere für automatisierte Tests in APIs sind solche kleinen Überprüfungen sehr nützlich, um Qualität und Korrektheit sicherzustellen. Die Test-Scripts lassen sich beliebig komplex gestalten, mit Bedingungen, Schleifen oder dem Abspeichern von Variablen, die später in weiteren Anfragen verwendet werden können.
Zusammenfassung
Das Testen von APIs mit Postman-Scripts ermöglicht es Entwicklern, auf einfache Art automatisierte Prüfungen direkt in ihren API-Requests zu integrieren. Durch das Schreiben von JavaScript-Test-Codes im "Tests"-Tab können Statuscodes, Antwortinhalte und Header geprüft werden. Mithilfe der von Postman bereitgestellten Funktionen und der pm-API werden valide Tests erstellt, die nach jeder Anfrage ausgeführt werden und so die Qualität der API sicherstellen. Einfache Tests beginnen häufig damit, den Statuscode auf 200 zu prüfen, das Vorhandensein bestimmter JSON-Felder zu kontrollieren oder relevante Header zu validieren. Damit stellt Postman ein starkes Werkzeug für das automatisierte API-Testen bereit.
