API-Vertrags-Stresstester

Erzeugt Grenzwerttests aus einem OpenAPI-3.x-Dokument und sendet sie optional an ein echtes Backend, um Vertragsabweichungen zu finden.

Fuegen Sie ein OpenAPI-3.x-Dokument in "OpenAPI-Spezifikation" ein. YAML und JSON werden unterstuetzt.

Was benoetigt wird:

  • Ein gueltiges OpenAPI-3.x-Dokument mit paths, parameters, request bodies und responses
  • Optionale Referenzen unter components.schemas fuer Request-Body-Aufloesung
  • Eine optionale Basis-URL, wenn die erzeugten Grenzfaelle an ein echtes Backend gesendet werden sollen

So funktionieren die Felder:

  • OpenAPI-Spezifikation: den vollstaendigen YAML- oder JSON-Vertrag einfuegen
  • Basis-URL: leer lassen fuer reine Fallgenerierung oder etwas wie https://api.example.com eintragen, um Requests auszufuehren
  • Echte Anfragen ausfuehren: sendet erzeugte ungueltige oder Grenzwert-Requests an die Basis-URL
  • Autorisierungsheader: optionaler Rohwert wie Bearer
  • Maximale Faelle pro Feld: begrenzt, wie viele Grenzfaelle je Parameter oder Body-Feld erzeugt werden
  • Request-Timeout (ms): begrenzt die Laufzeit jeder echten Anfrage

Was getestet wird:

  • Fehlende Pflichtfelder
  • Leere, zu kurze und zu lange Strings
  • Ungueltige Enum-Werte
  • Zahlen unter minimum oder ueber maximum
  • Falsche Skalar- oder Array-Typen fuer dokumentierte Felder

Hinweise:

  • Ist "Echte Anfragen ausfuehren" aus, erzeugt das Tool nur einen vertragsbezogenen Testplan.
  • Ist es an, markiert der Bericht, ob jeder beobachtete HTTP-Status in den OpenAPI-Responses dokumentiert ist.
  • Abgedeckt sind path-, query-, header- und JSON-Body-Felder; aktuell liegt der Fokus auf application/json-Request-Bodies.

Beispielergebnisse

1 Beispiele

Grenzfaelle fuer eine Signup-API erzeugen

Prueft minLength-, Enum- und Zahlenregeln vor Mock-Server oder CI-Vertragstests.

{
  "summary": {
    "endpoints": 1,
    "generatedCases": 7,
    "executedCases": 0,
    "mismatches": 0
  },
  "cases": [
    {
      "fieldPath": "body.email",
      "title": "Missing required field"
    },
    {
      "fieldPath": "body.role",
      "title": "Invalid enum member"
    }
  ]
}
Eingabeparameter anzeigen
{ "openApiSpec": "openapi: 3.0.0\npaths:\n /users:\n post:\n requestBody:\n required: true\n content:\n application/json:\n schema:\n type: object\n required: [email, role]\n properties:\n email: { type: string, minLength: 5 }\n role: { type: string, enum: [admin, member] }\n age: { type: integer, minimum: 18 }\n responses:\n \"201\": { description: created }\n \"400\": { description: bad request }\n", "executeRequests": false, "maxCasesPerField": 3 }

Wichtige Fakten

Kategorie
Entwicklung & Web
Eingabetypen
textarea, text, checkbox, number
Ausgabetyp
json
Sample-Abdeckung
4
API verfügbar
Yes

Überblick

Der API-Vertrags-Stresstester generiert automatisch Grenzwert- und Fehler-Testfälle aus einem OpenAPI-3.x-Dokument (YAML oder JSON). Entwickler und QA-Teams können damit fehlende Pflichtfelder, ungültige Datentypen oder Wertebereichsüberschreitungen simulieren und die Anfragen optional direkt an ein echtes Backend senden, um Abweichungen zwischen API-Dokumentation und tatsächlichem Verhalten aufzudecken.

Wann verwenden

  • Wenn Sie die Robustheit Ihrer API gegen fehlerhafte oder extreme Eingabewerte wie zu lange Strings oder ungültige Enums prüfen möchten.
  • Vor dem Deployment, um sicherzustellen, dass das Backend auf ungültige Requests mit den in der OpenAPI-Spezifikation dokumentierten HTTP-Statuscodes antwortet.
  • Um schnell einen umfassenden Testplan für API-Endpunkte zu erstellen, ohne jeden Grenzwert manuell definieren zu müssen.

So funktioniert es

  • Fügen Sie Ihre vollständige OpenAPI-3.x-Spezifikation im YAML- oder JSON-Format in das Textfeld ein.
  • Konfigurieren Sie optional eine Basis-URL und einen Autorisierungsheader, wenn die generierten Testfälle direkt gegen ein echtes Backend ausgeführt werden sollen.
  • Legen Sie die maximale Anzahl an Testfällen pro Feld sowie das Request-Timeout fest und starten Sie den Prozess.
  • Laden Sie den JSON-Bericht herunter, der eine Zusammenfassung der generierten Fälle, ausgeführten Requests und gefundenen Vertragsabweichungen enthält.

Anwendungsfälle

Automatisierte Generierung von Negativtests für CI/CD-Pipelines basierend auf der aktuellen API-Dokumentation.
Überprüfung von Validierungslogiken im Backend bei der Verarbeitung von application/json-Request-Bodies.
Identifikation von undokumentierten HTTP-Fehlercodes, die vom Server bei fehlerhaften Eingaben zurückgegeben werden.

Beispiele

1. Generierung von Grenzwerttests für eine Registrierungs-API

QA-Ingenieur
Hintergrund
Ein neues Backend für Benutzerregistrierungen wurde entwickelt und muss auf korrekte Eingabevalidierung geprüft werden.
Problem
Es ist zu aufwendig, manuell alle möglichen fehlerhaften Eingaben (zu kurze Passwörter, falsche E-Mail-Formate, ungültige Rollen) zu definieren.
Verwendung
Fügen Sie die OpenAPI-Spezifikation der Registrierungs-API ein, lassen Sie 'Echte Anfragen ausführen' deaktiviert und setzen Sie 'Maximale Fälle pro Feld' auf 3.
Beispielkonfiguration
{
  "executeRequests": false,
  "maxCasesPerField": 3
}
Ergebnis
Ein JSON-Bericht mit strukturierten Testfällen für fehlende Felder, ungültige Enums und Längenüberschreitungen, der als Basis für automatisierte Tests dient.

2. Live-Überprüfung von Vertragsabweichungen

Backend-Entwickler
Hintergrund
Die API-Dokumentation wurde aktualisiert, aber es ist unklar, ob der Code alle definierten Fehlercodes (z. B. 400 Bad Request) korrekt zurückgibt.
Problem
Sicherstellen, dass das Backend bei ungültigen Payloads exakt wie in der OpenAPI-Spezifikation dokumentiert antwortet.
Verwendung
Fügen Sie die Spezifikation ein, tragen Sie die Staging-URL als 'Basis-URL' ein, aktivieren Sie 'Echte Anfragen ausführen' und fügen Sie einen 'Autorisierungsheader' hinzu.
Beispielkonfiguration
{
  "baseUrl": "https://staging.api.example.com",
  "executeRequests": true,
  "authorizationHeader": "Bearer abc123xyz"
}
Ergebnis
Das Tool sendet fehlerhafte Requests an die Staging-Umgebung und liefert einen Bericht, der aufzeigt, welche Endpunkte undokumentierte HTTP-Statuscodes zurückgeben.

Mit Samples testen

development

Verwandte Hubs

FAQ

Welche OpenAPI-Versionen werden unterstützt?

Das Tool unterstützt gültige OpenAPI-3.x-Dokumente im YAML- oder JSON-Format.

Werden die Testfälle automatisch an meine API gesendet?

Nein, standardmäßig wird nur ein Testplan generiert. Wenn Sie die Option 'Echte Anfragen ausführen' aktivieren und eine Basis-URL angeben, werden die Requests tatsächlich gesendet.

Welche Arten von Fehlern werden getestet?

Das Tool testet unter anderem fehlende Pflichtfelder, leere oder zu lange Strings, ungültige Enum-Werte, Zahlen außerhalb des definierten Bereichs sowie falsche Datentypen.

Kann ich geschützte APIs testen?

Ja, Sie können im Feld 'Autorisierungsheader' einen gültigen Token (z. B. 'Bearer <token>') eintragen, der bei echten Anfragen mitgesendet wird.

Was passiert, wenn meine API nicht rechtzeitig antwortet?

Sie können das Request-Timeout anpassen (standardmäßig 8000 ms). Überschreitet eine Anfrage dieses Limit, wird sie abgebrochen und im Bericht vermerkt.

API-Dokumentation

Request-Endpunkt

POST /de/api/tools/api-contract-stress-tester

Request-Parameter

Parameter-Name Typ Erforderlich Beschreibung
openApiSpec textarea Ja -
baseUrl text Nein -
executeRequests checkbox Nein -
authorizationHeader text Nein -
maxCasesPerField number Nein -
timeoutMs number Nein -

Antwortformat

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON-Daten: JSON-Daten

MCP-Dokumentation

Fügen Sie dieses Tool zu Ihrer MCP-Server-Konfiguration hinzu:

{
  "mcpServers": {
    "elysiatools-api-contract-stress-tester": {
      "name": "api-contract-stress-tester",
      "description": "Erzeugt Grenzwerttests aus einem OpenAPI-3.x-Dokument und sendet sie optional an ein echtes Backend, um Vertragsabweichungen zu finden.",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-contract-stress-tester",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Sie können mehrere Tools verketten, z.B.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, maximal 20 Tools.

Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte bei [email protected]