Postman ist eines der beliebtesten Tools zur Entwicklung und zum Testen von APIs. Ich nutze es seit 2017, und zu lernen, wie man mit Postman APIs testet, hat meinen Testprozess wirklich beschleunigt.
In diesem Artikel führe ich Sie Schritt für Schritt durch, wie Sie API-Anfragen mit Postman validieren. Am Ende sollten Sie in der Lage sein, Ihre eigenen automatisierten Tests zu erstellen.
Bevor wir jedoch in das eigentliche Postman-Tutorial einsteigen, möchte ich Ihnen zunächst einige Dinge über APIs erklären.
Was sind APIs?
API steht für Application Programming Interface — zu Deutsch etwa "Schnittstelle zur Anwendungsprogrammierung". Klingt immer noch nicht sehr klar, oder? 😅 Lassen Sie mich das näher erläutern:
Eine API ist eine Schnittstelle, die definiert, wie Skripte oder Programme mit einer Anwendung oder einem Service kommunizieren können. Sie funktioniert, indem sie Daten und Informationen zwischen Anwendungen, Systemen und Geräten austauscht.
Die derzeit gebräuchlichste API ist die REST API, die ich im weiteren Verlauf dieses Postman-API-Test-Tutorials verwenden werde. REST ist auch ein Akronym für REpresentational State Transfer (Repräsentativer Zustandstransfer). REST-APIs beruhen auf Prinzipien wie Client-Server-Kommunikation, einheitlichen Schnittstellen für die Kommunikation zwischen Systemen, zustandslosen Operationen und mehr.
Die Kommunikation erfolgt über HTTP-Requests und Responses.
Der Aufbau von HTTP-Requests
HTTP-Requests bestehen aus 4 Hauptbestandteilen:
- Die URL
- Der Endpoint, der die konkrete Ressource repräsentiert, mit der wir interagieren möchten.
- Die HTTP-Methode — HTTP-Methoden teilen dem Server mit, ob wir Informationen abrufen oder was wir an der Anwendung ändern möchten. Heute behandeln wir die grundlegenden CRUD-Operationen:
- Erstellen: POST
- Lesen: GET
- Aktualisieren: PUT
- Löschen: DELETE
- Der Request-Body. Dieser ist optional, abhängig von der verwendeten Methode. In diesem Postman-Tutorial verwenden wir das JSON-Format (JavaScript Object Notation).
HTTP-Response-Codes
Wenn wir eine HTTP-Anfrage stellen, gibt der Server einen Response-Code zurück, der uns mitteilt, ob die Anfrage erfolgreich war oder nicht. Die wichtigsten Kategorien der HTTP-Response-Codes sind:
- 1xx: Informationsantwort
- 2xx: Erfolg
- 3xx: Weiterleitung
- 4xx: Client-Fehler
- 5xx: Server-Fehler
Ich liebe diese visuelle Darstellung von Julia Evans:

Eine vollständige Liste der Response-Codes finden Sie hier oder, wenn Sie die Erklärung lieber mit Katzen mögen, hier 🐱👓
Okay, ich denke, wir haben genug Grundlagen behandelt, um jetzt mit dem eigentlichen Tutorial zu starten—sehen wir uns also an, wie man mit Postman APIs testet!
Wie benutzt man Postman zum Testen von APIs (Schritt für Schritt)
Sie können Postman auf zwei Arten nutzen: direkt im Browser (hierfür müssen Sie ein Konto anlegen), oder als installierte Anwendung auf Ihrem lokalen Rechner—ein Konto ist in diesem Fall optional.
Ich bevorzuge die Installation, da ich nicht gerne zu viele offene Browser-Tabs habe, daher nutze ich diese Variante.
Dies ist ein Einsteiger-Tutorial, daher werde ich einige einfache Testfälle benutzen, um zu zeigen, wie man mit Postman eine API testet. Die Demo-App, die ich dafür verwende, ist Swagger Petstore, und das Szenario, das ich teste, ist:
- Fügen Sie ein neues Haustier mit dem Status „pending“ zum Shop hinzu
- Aktualisieren Sie den Status des Haustiers auf „available“
- Überprüfen Sie, ob die Informationen des Haustiers aktualisiert wurden
- Löschen Sie das Haustier
- Bestätigen Sie, dass das Haustier gelöscht wurde
Ok, los geht’s!

Die erste HTTP-Anfrage in Postman
Postman ermöglicht es, API-Anfragen in Sammlungen zu gruppieren. Das sind Gruppen von zusammengehörigen HTTP-Anfragen. Erstellen Sie jetzt eine neue Sammlung für alle Anfragen, die Sie in den folgenden Tests verwenden werden:

OK, nun haben Sie eine leere Sammlung.
Klicken Sie auf den Link 'Anfrage hinzufügen' oder auf die '+'-Schaltfläche in der Tab-Liste:

Die Swagger UI-Seite dient als Dokumentation für die API.
Die Ressource (Endpoint), die Sie zum Erstellen eines neuen Haustiers benötigen, ist '/pet' und die HTTP-Methode ist POST.
Im „Modell“-Tab sehen Sie das Objekt, das Sie als Anfrage-Body senden müssen, sowie die Datentypen für jeden Wert:

Wir verwenden das JSON-Format, um den Antwort-Body zu senden, also aktivieren Sie das Optionsfeld 'Roh' und wählen Sie "JSON" im Dropdown-Menü.
Der Anfrage-Body sollte etwa so aussehen:
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Sie können bequem die restlichen Details im neuen Anfrage-Tab ergänzen:

Um dieses neue Haustier auf dem Server zu erstellen, klicken Sie auf die Schaltfläche „Senden“.
Wenn alles funktioniert, erhalten Sie eine erfolgreiche Antwort, und der Antwort-Body enthält einige Informationen zum Haustier, einschließlich seiner ID.
Das brauchen wir im weiteren Verlauf:

Der nächste Schritt ist das Aktualisieren der Haustier-Informationen.
Dafür müssen Sie wieder auf dieselbe Ressource, ‚/pet‘, zugreifen, diesmal jedoch eine Anfrage mit der HTTP-Methode PUT senden.
Sie sehen, welche Informationen Sie im Anfrage-Body senden müssen:

Erstellen Sie also eine neue Anfrage, verwenden Sie dieselbe Anforderungs-URL, wählen Sie die Methode PUT aus und senden Sie denselben Anfrage-Body, ändern Sie aber den Wert des Status-Felds auf „available“ (verfügbar) und verwenden Sie die ID aus der vorherigen Antwort:
{
"id": <ID hier eingeben>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
Die Antwort sollte erneut 200 OK sein. Als nächstes lesen wir die Informationen des Haustiers aus, um zu validieren, dass der Status korrekt geändert wurde.
Die HTTP-Methode dafür ist GET und die Anfrage akzeptiert die ID als Parameter:

Die Antwort enthält alle Daten des Haustiers, einschließlich des Status, der jetzt den Wert „available“ hat:

Die Anfrage zum Löschen erfolgt über exakt dieselbe URL wie die GET-Anfrage (einschließlich des ID-Parameters), aber diesmal mit der HTTP-Methode DELETE:

Auch jetzt sollte die Anfrage erfolgreich sein und die HTTP-Antwort 200 zurückgeben:

Wenn Sie erneut eine GET-Anfrage für dieselbe Haustier-ID senden, erhalten Sie zu Recht eine 404-HTTP-Anfrage, da das Haustier auf dem Server nicht mehr gefunden werden kann:

Tests in Postman hinzufügen
Mit den bisherigen Schritten haben Sie alle Aktionen aus dem Testszenario durchgeführt, aber jedes Ergebnis musste manuell validiert werden, indem Sie die Antwortcodes und -inhalte überprüft haben.
Schauen wir uns an, wie Sie API-Tests mit Postman automatisieren können, damit Sie diese Prüfungen nicht mehr manuell durchführen müssen.
Beginnen Sie mit der ersten Anfrage, der POST-Anfrage, und klicken Sie auf den Tab Tests der Anfrage.
Wählen Sie rechts das Snippet „Status code: Code is 200" aus. Snippets in Postman sind vordefinierte Skripte, die Sie verwenden können, sodass Sie den Code nicht selbst schreiben müssen. Jede Codezeile, die Sie im Tab Tests der Anfrage eingeben, wird ausgeführt, nachdem die Anfrage gesendet wurde.
Sie können den Namen des Tests in etwas Beschreibenderes ändern (z. B. „Haustier erfolgreich erstellt“).
Senden Sie die Anfrage erneut und Sie werden sehen, dass im Tab Testergebnisse (Test Results) der Antwort 1/1 Tests bestanden wurden und der Name des bestandenen Tests angezeigt wird:

Dieses Snippet können Sie auch in den PUT- und DELETE-Anfragen hinzufügen.
Um den Statuswert in der Antwort der GET-Anfrage zu validieren, nutzen Sie das Snippet „Response body: JSON value check“:
pm.test("Ihr Testname", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Was dieses Code-Snippet macht, ist, die Antwort in einer Variablen namens jsonData zu speichern, die dann geparst wird, den Wert eines Attributs ausliest und diesen mit einem erwarteten Wert vergleicht.
Für uns bedeutet das, dass das Attribut „status“ den Wert „available“ haben sollte. Der Test sollte daher wie folgt aussehen:
pm.test("Der Haustierstatus ist 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
Und für die abschließende Prüfung, die bestätigt, dass das Haustier gelöscht wurde, indem der GET-Befehl erneut ausgeführt wird, können wir die ursprüngliche GET-Anfrage duplizieren und einen Test hinzufügen, der diesmal überprüft, ob der HTTP-Antwortcode 404 ist:

Du kannst die Anfragen innerhalb der Kollektion durch Ziehen und Ablegen verschieben.

Verwendung von Variablen in Postman
Du hast wahrscheinlich bemerkt, dass wir die ID aus der POST-Anfrage manuell kopieren und in alle folgenden Anfragen einfügen mussten. Was wäre, wenn es dafür einen einfacheren Weg gäbe?
Die gute Nachricht ist: Ja, den gibt es! Wir können Postman-Variablen verwenden, um wiederverwendbare Werte zu speichern, sodass wir die Werte an einer einzigen Stelle ändern können – genau wie wir es in allen automatisierten Tests anstreben.
Postman-Variablen haben 3 Geltungsbereiche:
- Global: Variablen, die von jeder Umgebung und jeder Kollektion aus zugänglich sind
- Umgebung: Variablen, die auf Umgebungsebene gespeichert werden. Ich habe in diesem Tutorial keine Umgebungen verwendet, aber es ist gut zu wissen, dass Postman es erlaubt, für die verschiedenen Umgebungen, mit denen wir arbeiten, unterschiedliche Umgebungen zu erstellen. Zum Beispiel separate Umgebungen für Dev, UAT und Produktion
- Kollektion: Diese Variablen werden auf Kollektionsebene gespeichert und können von allen Anfragen innerhalb der Kollektion abgerufen werden.
Es gibt verschiedene Möglichkeiten, Kollektionsvariablen einzurichten.
Die einfachste Möglichkeit ist, sie direkt in der Kollektion zu erstellen.
Dazu klickst du auf den Namen der Kollektion, wählst den Reiter „Variablen“ und gibst den Namen sowie den Wert der Variablen ein:

Um diese Variable zu verwenden, ersetzt du den Originalwert in den Anfragen durch den Variablennamen in doppelten geschweiften Klammern, wie hier: {{petId}}
Du musst sie im POST- und PUT-Request Body beim "id"-Parameter wie folgt einsetzen:
"id": {{petId}},
Und in der URL der GET- und DELETE-Anfragen, so: https://petstore.swagger.io/v2/pet/{{petId}}
Du kannst dir die finale Version der Kollektion hier ansehen.
Die Postman-Kollektion ausführen
Und jetzt kommt der beste Teil! Das eigentliche Ziel dieses Tutorials war es, zu zeigen, wie du automatisierte Tests mit Postman durchführst. Alles, was wir vorher gemacht haben, war die Vorbereitung dazu.
Um die Tests automatisch auszuführen, klicke mit der rechten Maustaste auf den Namen der Kollektion oder fahre mit der Maus darüber, dann klicke auf das Meatballs-Menü neben dem Namen und wähle „Run collection“ aus.

Das öffnet den Collection Runner:

In diesem Fenster kannst du auswählen, welche deiner Anfragen du senden möchtest, du kannst ihre Reihenfolge ändern, die Kollektion mehrfach ausführen (indem du die Anzahl der Durchläufe erhöhst), oder du kannst Verzögerungen zwischen den Anfragen einfügen.
Sie können zunächst die Standardwerte belassen und auf die Schaltfläche „Ausführen“ klicken. Nach Abschluss des Durchlaufs sehen Sie die Testergebnisse für alle Szenarien, die wir testen wollten, mit nur einem einfachen Klick:

Und das war's auch schon! Wenn Sie alle Schritte in diesem Artikel befolgt haben, sollten Sie jetzt Ihre ersten automatisierten API-Tests mit Postman haben! 🚀
Fazit
Postman ist ein sehr hilfreiches Tool, wenn es um das Testen von APIs geht, und dieser Artikel hat nur an der Oberfläche gekratzt. Wir haben jedoch behandelt, wie man HTTP-Anfragen sendet, die Antworten liest, Tests erstellt und die Testergebnisse automatisch überprüft.
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie den QA Lead Newsletter, damit Sie über alle Neuigkeiten und Trends im Softwaretest informiert bleiben.
Need expert help selecting the right Testing Software?
We’ve joined up with Crozdesk.com to give all our readers (yes, you!) access to Crozdesk’s software advisors. Just use the form below to share your needs, and they will contact you at no cost or commitment. You will then be matched and connected to a shortlist of vendors that best fit your company, and you can access exclusive software discounts!

