Zum Inhalt springen
SDETRole
SDETRole

Lernen / Cheat Sheet

HTTP Cheat Sheet für API-Tests

Was Tester von HTTP wissen müssen, auf einer Seite: welche Methoden sicher und idempotent sind, welchen Statuscode jede Situation liefern sollte, welche Header eine Assertion wert sind, die cURL-Flags für den Alltag und eine Checkliste für jede Response.

Geprüft mit HTTP-Semantik nach RFC 9110; Problem Details nach RFC 9457

Methoden

MethodeZweckSicherIdempotent
GET Eine Ressource oder Collection lesen Ja Ja
HEAD Wie GET, nur Header Ja Ja
OPTIONS Erlaubte Methoden; CORS-Preflight Ja Ja
POST Anlegen oder eine Aktion ausführen Nein Nein
PUT Die gesamte Ressource ersetzen Nein Ja
PATCH Einzelne Felder ändern Nein Nicht garantiert
DELETE Eine Ressource entfernen Nein Ja

Idempotent heißt: Wiederholt man den Request, bleibt der Server im selben Zustand. Die Response kann sich unterscheiden: Ein zweites DELETE darf 404 liefern.

Zu prüfende Statuscodes

CodeBedeutungTypischer Test
200 OK Erfolg mit Body GET auf eine existierende Ressource
201 Created Ressource angelegt POST mit gültigen Daten; Location-Header prüfen
204 No Content Erfolg, leerer Body DELETE oder PUT ohne Rückgabe
301 / 308 Dauerhaft verschoben Alte URL leitet weiter; 308 behält die Methode bei
304 Not Modified Gecachte Kopie ist noch gültig GET mit If-None-Match: <etag>
400 Bad Request Fehlerhafter Request Ungültiges JSON, falsche Typen
401 Unauthorized Nicht authentifiziert Fehlendes oder abgelaufenes Token
403 Forbidden Authentifiziert, aber nicht berechtigt Zugriff auf die Ressource eines anderen Nutzers
404 Not Found Ressource existiert nicht Unbekannte ID (oder Verbergen einer Ressource, die man nicht sehen darf)
405 Method Not Allowed Falsche Methode für diese URL DELETE auf einen Read-only-Endpoint
409 Conflict Kollidiert mit dem aktuellen Zustand Doppelte E-Mail, veraltete Version
415 Unsupported Media Type Body-Format nicht akzeptiert text/plain an einen JSON-Endpoint senden
422 Unprocessable Content Gültiges JSON, ungültige Werte Validierungsfehler bei Geschäftsregeln
429 Too Many Requests Rate Limit erreicht Viele Requests auf einmal; Retry-After prüfen
500 Internal Server Error Serverfehler Nie erwartet: immer ein Defekt
502 / 503 / 504 Upstream-Fehler, nicht verfügbar, Timeout Abhängigkeit ausgefallen; Retries prüfen

Header, die eine Prüfung wert sind

HeaderBeispielWarum
Content-Type application/json; charset=utf-8 Antwortformat passt zum Body
Accept application/json Client fordert ein Format an; 406 erwarten, wenn nicht unterstützt
Authorization Bearer eyJhbGciOi… Token-Authentifizierung; fehlt sie → 401
Location /api/orders/1043 Gesetzt bei 201 Created und Redirects
Cache-Control no-store Persönliche oder sensible Daten dürfen nicht gecacht werden
ETag / If-None-Match "a1b2c3" Bedingtes GET → 304
Retry-After 30 Wird mit 429 oder 503 gesendet
Set-Cookie sid=…; HttpOnly; Secure; SameSite=Lax Session-Cookies brauchen HttpOnly und Secure
Access-Control-Allow-Origin https://app.example.com CORS: nie * bei Requests mit Credentials

cURL

AufgabeCode
Status und Header anzeigen curl -i https://api.example.com/users/1
Vollständiger Request/Response-Trace curl -v https://api.example.com/users/1
JSON per POST senden
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"email":"qa@example.com"}'
Bearer-Token curl -H "Authorization: Bearer $TOKEN" https://api.example.com/me
Basic Auth curl -u user:pass https://api.example.com/admin
Redirects folgen curl -L https://example.com/old
Nur der Statuscode curl -s -o /dev/null -w '%{http_code}' https://api.example.com/health
In Skripten bei 4xx/5xx fehlschlagen curl --fail-with-body https://api.example.com/health

Unter Windows cmd ersetzen Sie die einfachen Anführungszeichen durch doppelte und escapen die inneren.

Checkliste für jede Response

PrüfungBeispiel
Statuscode Genau 201, nicht „irgendein 2xx“
Body-Schema Pflichtfelder vorhanden, korrekte Typen, keine zusätzlichen sensiblen Felder
Werte Zurückgegebene Eingaben stimmen; berechnete Felder (Summen, Datumswerte) sind korrekt
Header Content-Type, Location, Cache-Control
Fehlerformat Einheitliches Fehlerformat (z. B. RFC 9457 Problem Details) mit hilfreicher Meldung
Seiteneffekte Der Datensatz existiert – oder eben nicht –, wenn Sie ihn per GET abrufen
Antwortzeit Innerhalb des vereinbarten Budgets

Üben und vertiefen

Weitere Cheat Sheets

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →