Robot Framework nimmt eine andere Position ein als Code-First-Tools. Anstatt Tests als Programmcode zu schreiben, erstellen Sie sie als Tabellen mit menschenlesbaren Schlüsselwörtern. Ein Test liest sich fast wie eine Checkliste, was bedeutet, dass QA-Analysten und -Ingenieure dieselbe Suite erstellen und überprüfen können. Für API-Tests wandelt die RequestsLibrary HTTP-Aufrufe in dieselben lesbaren Schlüsselwörter um.
Dieser Leitfaden zeigt, wie Sie API-Tests mit Robot Framework von Anfang bis Ende automatisieren. Sie installieren das Framework und die benötigten Bibliotheken, schreiben Ihren ersten Keyword-gesteuerten Test, verwalten Sitzungen über Anfragen hinweg, überprüfen Statuscodes und JSON-Bodies und erstellen wiederverwendbare Schlüsselwörter, damit die Suite skaliert. Jedes Beispiel verwendet die tatsächlich von Robot Framework genutzte Keyword-Tabellen-Syntax.
Was Robot Framework ist und warum es für API-Tests geeignet ist
Robot Framework ist ein quelloffenes, generisches Automatisierungs-Framework für Testautomatisierung und robotergesteuerte Prozessautomatisierung. Sein Hauptmerkmal ist die Keyword-gesteuerte Syntax: Tests werden in einfachen Tabellen geschrieben, und komplexes Verhalten wird aus Bibliotheken von Schlüsselwörtern aufgebaut, die in Python oder Java implementiert sind.
Für API-Tests hat dies zwei echte Vorteile. Erstens sind die Tests für Personen lesbar, die nicht programmieren, sodass ein Tester oder Produktverantwortlicher nachvollziehen kann, was eine Suite überprüft. Zweitens ist das Framework erweiterbar: Die RequestsLibrary umschließt die Python-Bibliothek requests und stellt HTTP-Operationen als Schlüsselwörter zur Verfügung, während andere Bibliotheken JSON, Datenbanken und mehr abdecken. Wenn die Keyword-gesteuerte Struktur neu für Sie ist, erklärt unser umfassender Leitfaden zu Automatisierungs-Test-Frameworks, wo sie unter den anderen Framework-Typen einzuordnen ist.
Robot Framework und seine Bibliotheken installieren
Robot Framework und seine Bibliotheken werden über pip installiert. Arbeiten Sie innerhalb einer virtuellen Umgebung, um das Projekt sauber zu halten:
python -m venv .venv
source .venv/bin/activate
pip install robotframework
pip install robotframework-requests
pip install robotframework-jsonlibrary
Die drei Pakete decken die meisten API-Testanforderungen ab:
robotframeworkist die Kern-Engine und der Test-Runner.robotframework-requests(die RequestsLibrary) sendet HTTP-Anfragen als Schlüsselwörter.robotframework-jsonlibraryextrahiert und überprüft Werte innerhalb von JSON-Antworten.
Bestätigen Sie die Installation mit robot --version. Das offizielle Robot Framework Benutzerhandbuch ist die Referenz für Syntaxfragen, wenn Ihre Suite wächst.
Ein Detail verwirrt Neulinge: Robot Framework ist anfällig für Whitespace. Schlüsselwörter und ihre Argumente werden durch mindestens zwei Leerzeichen getrennt, nicht durch eines. Ein einzelnes Leerzeichen wird als Teil desselben Tokens behandelt. Die meisten Editoren mit einem Robot Framework-Plugin erledigen dies für Sie, aber wenn ein Test nicht geparst werden kann, sind falsch platzierte Argumente das Erste, was überprüft werden sollte.
Ihren ersten API-Test schreiben
Robot Framework Testdateien verwenden die Erweiterung .robot und sind in Abschnitte unterteilt, die mit *** Settings ***, *** Variables *** und *** Test Cases *** gekennzeichnet sind. Hier ist eine vollständige Datei, die einen Benutzer-Endpunkt überprüft:
*** Settings ***
Library RequestsLibrary
Library Collections
*** Variables ***
${BASE_URL} https://api.example.com/v1
*** Test Cases ***
Get User Returns 200
Create Session api ${BASE_URL}
${response}= GET On Session api /users/42
Status Should Be 200 ${response}
Get User Returns Expected Email
Create Session api ${BASE_URL}
${response}= GET On Session api /users/42
${body}= Set Variable ${response.json()}
Should Be Equal As Integers ${body}[id] 42
Should Be Equal ${body}[status] active
Der Abschnitt *** Settings *** importiert Bibliotheken. Create Session öffnet eine benannte HTTP-Sitzung. GET On Session sendet die Anfrage und gibt ein Antwortobjekt zurück. Status Should Be und Should Be Equal sind Assertions-Schlüsselwörter. Führen Sie die Suite mit robot tests.robot aus, und Robot Framework generiert automatisch einen HTML-Bericht und ein Log.
Mit Sitzungen arbeiten
Create Session speichert nicht nur eine Basis-URL. Die Sitzung enthält Standard-Header, Authentifizierung und Cookies, sodass jede darüber gestellte Anfrage diesen Zustand erbt. Dies ist wichtig für jede API, die eine Anmeldung erfordert, da Sie sich einmal authentifizieren und die Sitzung wiederverwenden können.
*** Test Cases ***
Create Order With Authenticated Session
Create Session api ${BASE_URL}
${login}= POST On Session api /auth/login
... json={"email": "qa@example.com", "password": "test-pass"}
${token}= Set Variable ${login.json()}[token]
${headers}= Create Dictionary Authorization=Bearer ${token}
${order}= POST On Session api /orders
... json={"product_id": 7, "quantity": 2}
... headers=${headers}
Status Should Be 201 ${order}
Die ...-Syntax setzt einen Keyword-Aufruf auf der nächsten Zeile fort, was lange Anfragen lesbar hält. Create Dictionary erstellt die Header-Map. Da die Sitzung bestehen bleibt, könnten Sie mehrere Folgeanfragen stellen, ohne sie neu zu erstellen. Die RequestsLibrary-Schlüsselwörter für Sitzungen sind in der RequestsLibrary-Referenz dokumentiert.
Antwort-Bodies überprüfen (Assertions)
Das Überprüfen des Statuscodes ist der erste Schritt. Um den Body zu verifizieren, parsen Sie den JSON und überprüfen dessen Felder. Die integrierten Schlüsselwörter von Robot Framework decken Gleichheit und Inklusivität ab, und die JSONLibrary fügt eine pfadbasierte Extraktion hinzu:
*** Settings ***
Library RequestsLibrary
Library JSONLibrary
Library Collections
*** Variables ***
${BASE_URL} https://api.example.com/v1
*** Test Cases ***
Order Response Has Correct Shape
Create Session api ${BASE_URL}
${response}= POST On Session api /orders
... json={"product_id": 7, "quantity": 2}
Status Should Be 201 ${response}
${body}= Set Variable ${response.json()}
Dictionary Should Contain Key ${body} total
Should Be Equal As Integers ${body}[quantity] 2
${status}= Get Value From Json ${body} $.status
Should Be Equal ${status}[0] pending
Dictionary Should Contain Key bestätigt die Existenz eines Feldes. Should Be Equal As Integers vergleicht numerische Werte ohne Überraschungen durch Typenkonflikte. Get Value From Json verwendet einen JSONPath-Ausdruck, um verschachtelte Daten zu erreichen. Für die breitere Palette von Überprüfungen, die bei einer API-Antwort durchgeführt werden sollten, ist unser Leitfaden zu API-Assertions eine gute Ergänzung.
Wiederverwendbare Schlüsselwörter erstellen
Das Wiederholen von Create Session und des Anmeldeablaufs in jedem Test ist das Keyword-gesteuerte Äquivalent von Copy-Paste. Robot Framework ermöglicht es Ihnen, Ihre eigenen Schlüsselwörter in einem Abschnitt *** Keywords *** zu definieren, sodass allgemeine Schritte zu einzelnen lesbaren Zeilen werden:
*** Keywords ***
Authenticate And Open Session
Create Session api ${BASE_URL}
${login}= POST On Session api /auth/login
... json={"email": "qa@example.com", "password": "test-pass"}
${token}= Set Variable ${login.json()}[token]
Set Suite Variable ${AUTH_HEADERS} Bearer ${token}
*** Test Cases ***
Create Order
Authenticate And Open Session
${headers}= Create Dictionary Authorization=${AUTH_HEADERS}
${order}= POST On Session api /orders
... json={"product_id": 7, "quantity": 2} headers=${headers}
Status Should Be 201 ${order}
Benutzerdefinierte Schlüsselwörter sind der Weg, wie eine Robot Framework Suite wartbar bleibt. Wenn sich der Anmelde-Endpunkt ändert, bearbeiten Sie ein Schlüsselwort anstelle jedes Tests. Für größere Suiten verschieben Sie gemeinsame Schlüsselwörter in eine Ressourcendatei und importieren diese, dieselbe modulare Disziplin, die in unserem Leitfaden zum Schreiben automatisierter Testskripte beschrieben wird.
Eine Ressourcendatei ist eine .robot-Datei ohne Testfälle, nur mit *** Keywords ***- und *** Variables ***-Abschnitten. Sie importieren sie aus einer Testdatei mit Resource common.robot in den Einstellungen. Dies hält den Anmeldeablauf, die Basis-URL und andere gemeinsame Teile an einem Ort. Wenn das Projekt wächst, hat ein typisches Layout eine Ressourcendatei pro API-Bereich plus eine übergeordnete für die globale Einrichtung. Diese Trennung von Testfällen und unterstützender Logik ist das Herzstück der Keyword-gesteuerten Struktur, und unser umfassender Leitfaden zum Automatisierungs-Test-Framework erklärt, warum sie skaliert.
Robot Framework in CI ausführen
Robot Framework läuft headless und gibt bei einem Fehler einen Exit-Code ungleich Null zurück, was genau das ist, was eine Pipeline benötigt, um einen Build fehlschlagen zu lassen. Der Runner schreibt außerdem nach jedem Lauf output.xml, log.html und report.html, sodass CI-Artefakte ohne zusätzliche Konfiguration verfügbar sind.
Einige Flags machen CI-Läufe sauberer. Verwenden Sie --outputdir, um Berichte in einen bekannten Ordner zu senden, --include und --exclude mit Tags, um Untergruppen auszuführen, und Variablendateien oder --variable, um umgebungsspezifische Werte wie Basis-URLs und Anmeldeinformationen ohne Bearbeitung von Testdateien einzufügen:
robot --outputdir results --variable BASE_URL:https://staging.example.com/v1 tests/
Markieren Sie Ihre Tests mit [Tags], damit Sie bei jedem Commit einen schnellen Smoke-Test und die vollständige Suite nächtlich ausführen können. Die Integration in GitHub Actions oder jede andere Pipeline folgt dem gleichen Muster wie unsere API-Tests in CI/CD-Anleitung: Abhängigkeiten installieren, Befehl ausführen, Berichtsartefakte veröffentlichen.
Wann eine dedizierte API-Plattform mehr hilft
Robot Framework ist eine gute Wahl, wenn Sie lesbare, Keyword-gesteuerte Tests wünschen, die von Teams mit gemischten Fähigkeiten geteilt werden können. Es ist weniger bequem, wenn Sie auch API-Design, Mocking und Debugging an einem Ort benötigen oder wenn Sie eine Schema-Validierung gegen eine OpenAPI-Spezifikation wünschen, ohne sie aus Bibliotheken zusammenzusetzen.
Apidog erfüllt diese Anforderungen direkt. Es bietet einen visuellen Test-Builder, automatische OpenAPI-Schema-Validierung, datengesteuerte Läufe aus CSV und JSON, Umgebungsmanagement und HTML-Berichte, mit einem CLI-Runner für CI. Teams verwenden oft beides: Robot Framework, wo die Keyword-gesteuerte Lesbarkeit am wichtigsten ist, und Apidog für das Entwerfen, Mocken und umfassende Testen der zu testenden APIs. Sie können Apidog herunterladen und eine funktionierende API-Testsuite einrichten, ohne Keyword-Bibliotheken schreiben zu müssen.
Häufig gestellte Fragen
Ist Robot Framework nur für UI-Tests gedacht?
Nein. Robot Framework ist ein generisches Automatisierungs-Framework. Mit der RequestsLibrary bewältigt es API-Tests gut, und andere Bibliotheken decken Datenbanken, SSH und mehr ab. Sein Keyword-gesteuertes Design ist schichtunabhängig. Das Framework wurde durch die SeleniumLibrary für UI-Tests populär, aber API-Tests sind eine ebenso häufige Anwendung.
Was ist der Unterschied zwischen Create Session und einer einfachen Anfrage?
Create Session öffnet eine benannte, persistente HTTP-Sitzung, die eine Basis-URL, Header, Cookies und Authentifizierung speichert. Nachfolgende Schlüsselwörter wie GET On Session verwenden diesen Zustand wieder, was für APIs, die eine Anmeldung erfordern, unerlässlich ist. Eine sitzungslose Anfrage würde keine Cookies oder Authentifizierung zwischen Aufrufen übertragen, wodurch Sie jedes Mal alles neu senden müssten.
Muss ich Python kennen, um Robot Framework zu verwenden?
Nicht, um Tests zu schreiben. Die Keyword-Tabellen-Syntax wurde für Nicht-Programmierer entwickelt, und die RequestsLibrary stellt HTTP-Operationen bereits als Schlüsselwörter zur Verfügung. Python-Kenntnisse werden erst dann nützlich, wenn Sie völlig neue Keyword-Bibliotheken schreiben möchten. Die meisten API-Testanforderungen werden durch bestehende Bibliotheken abgedeckt, sodass viele Teams überhaupt kein Python schreiben.
Wie verhält sich Robot Framework im Vergleich zu Pytest für API-Tests?
Pytest ist Code-First und eignet sich für Python-Teams, die Tests neben dem Anwendungscode wünschen. Robot Framework ist Keyword-gesteuert und eignet sich für Teams mit gemischten Fähigkeiten, die lesbare, tabellarische Tests schätzen. Beide laufen in CI und erzeugen Berichte. Die Wahl hängt eher davon ab, wer die Suite schreibt und wartet, als von der reinen Funktionalität.
Kann Robot Framework Antworten gegen ein OpenAPI-Schema validieren?
Nicht standardmäßig. Sie können einzelne Felder mit integrierten Schlüsselwörtern und der JSONLibrary überprüfen, und Community-Bibliotheken fügen die Schema-Überprüfung hinzu. Wenn die automatische Validierung gegen ein OpenAPI-Dokument im Mittelpunkt Ihres Workflows steht, erspart Ihnen eine Plattform wie Apidog, die dies nativ unterstützt, das Zusammenstellen und Pflegen von Bibliotheken.
