Antwort.
Manuelles API-Testing ist der Prozess der Überprüfung der Funktionsweise einer Anwendungsprogrammierschnittstelle ohne Automatisierung, unter Verwendung spezialisierter Werkzeuge wie Postman, Swagger oder curl.
Historie der Frage
Frühere APIs wurden manuell getestet, da es keine Automatisierung gab und die Schnittstellen relativ einfach waren. Heutzutage, trotz der Automatisierung, bleibt manuelles Testen von Bedeutung, insbesondere für grundlegende Überprüfungen neuer oder instabiler Methoden.
Problem
Die Hauptschwierigkeiten sind:
- die Notwendigkeit eines genauen Verständnisses der Struktur von Eingabe- und Ausgabedaten (JSON, XML usw.)
- die Komplexität der Reproduktion komplexer Szenarien (Authentifizierung, Abhängigkeit vom Systemzustand)
- das Risiko, verborgene Fehler zu übersehen, die über das UI nicht offensichtlich sind
Lösung
Erfolgreiches Testen erfordert:
- sorgfältige Arbeit mit der API-Dokumentation
- Erstellung von Sets manueller Anfragen, die verschiedene Parameter und Fehler-Szenarien abdecken
- Testen sowohl positiver als auch negativer Szenarien (Datenvalidierung, Autorisierungsüberprüfung)
Wesentliche Merkmale:
- Möglichkeit, einen neuen oder geänderten Endpunkt schnell zu überprüfen, ohne auf automatisierte Tests zu warten
- Flexibilität bei der Analyse von Anomalien und Fehlern, wenn das Ergebnis nicht offensichtlich ist
- Visuelle Kontrolle über alle Phasen der Anfrage und Antwort
Fangfragen.
Kann man für manuelle API-Tests nur das UI verwenden, ohne Werkzeuge wie Postman?
Nein, da viele Fehler nur auf der Datenübertragungsebene auftreten und über das UI nicht angezeigt werden, sind spezielle Werkzeuge für eine vollständige Überprüfung erforderlich.
Reicht es aus, nur eine korrekte Anfrage zu senden, um die Funktionalität des API-Endpunkts zu überprüfen?
Nein, es ist wichtig, nicht nur gültige Anfragen zu testen, sondern auch alle Grenz-, ungültigen und seltenen Fälle, andernfalls werden Fehler nicht gefunden.
Muss man negative Szenarien separat testen oder ist das überflüssige Arbeit?
Es ist unbedingt notwendig. Es ist wichtig zu gewährleisten, dass das System Fehler korrekt behandelt und ungültige Anfragen ablehnt, andernfalls ist die Sicherheit und Stabilität gefährdet.
Typische Fehler und Anti-Pattern
- Testen nur "idealer" Szenarien (fehlende Überprüfung ungültiger Werte)
- Ignorieren des Systemzustands – Überprüfungen mit bereits vorhandenen Daten oder einer unvorbereiteten Datenbank
- Fehlende Validierung von Headern, Fehlermeldungen, nicht standardmäßigen Fällen
Lebensbeispiel
Negativer Fall
Ein Tester überprüft nur eine erfolgreiche POST-Anfrage an die API "Benutzer erstellen" – sendet ein korrektes JSON, erhält 200 OK und betrachtet den Test als abgeschlossen.
Vorteile:
- Schnelle Überprüfung des Hauptszenarios
Nachteile:
- Fehler, die mit fehlenden Feldern, ungültigem E-Mail-Format, der doppelten Erstellung desselben Benutzers zusammenhängen, wurden übersehen
- Keine Gewissheit, dass die API den richtigen Fehlercode zurückgibt
Positiver Fall
Ein Tester überprüft systematisch die API "Benutzer erstellen":
- Erfolg bei gültiger Anfrage
- Fehler beim Überspringen erforderlicher Parameter
- Fehler bei der doppelten Erstellung
- Überprüfung verschiedener HTTP-Statuscodes, Fehlermeldungen, E-Mail-Validierung
Vorteile:
- Garantie für die korrekte Funktionsweise der API in verschiedenen Situationen
- Minimierung der Anzahl an Fehlern in der Produktion
Nachteile:
- Erfordert mehr Zeit für die Vorbereitung und Kontrolle der Testdaten