Programmierpraktikum SoSe 2024, Bachelor Informatik, FU Berlin
ProPra2024 > Testen > Testframeworks > Robot

Funktionale Tests mit dem Robot Framework

Experience
Product

Ziel

  • Ich habe erste Robot Framework Testfälle ausgeführt
  • Ich habe kleine Erweiterungen zu bestehenden Testfällen durchgeführt
  • Ich habe BDD kennengelernt

Hintergrund

Was ist das Robot Framework und wie kann ich es nutzen?

Das Robot Framework (RF) ist ein Open-Source-Automatisierungs-Framework für Software-Tests und RPA, welches in Python entwickelt wurde. Es ermöglicht die Erstellung von automatisierten Test- und Automatisierungsprozessen durch den Einsatz von einfach lesbaren, schlüsselwortbasierten KDT Testskripten. Schlüsselwörter dienen als Aktionen oder Anweisungen, die zusammengefügt werden, um Tests oder Automatisierungsaufgaben zu definieren und auszuführen. Das fördert eine leicht verständliche und wartbare Automatisierung.

Um das RF nutzen zu können, ist neben Python das Paket "robotframework" zu installieren: pip install robotframework

Anschließend können automatisierte Prozesse erstellt und ausgeführt werden. Für die folgenden Aufgaben nutzen wir die Informationen der offiziellen RF Seite. RF Seite

Kann ich das Robotframework nur zum Testen verwenden?

Obwohl es ursprünglich für Softwaretests entwickelt wurde, hat es sich zu einem vielseitigen Automatisierungsframework entwickelt und kann für verschiedene Arten von Automatisierungsaufgaben eingesetzt werden. Das Robot Framework kann verwendet werden, um wiederholbare Geschäftsprozesse zu automatisieren, indem es auf die Benutzeroberfläche von Anwendungen zugreift und Aktionen durchführt. RPA Neben der GUI-Testautomatisierung kann das Robot Framework auch für die Automatisierung von API-Tests genutzt werden. Hierbei können HTTP-Anfragen an APIs getestet und validiert werden. API Das Robot Framework kann eingesetzt werden, um Datenmigrationen zu automatisieren und sicherzustellen, dass Daten zwischen verschiedenen Systemen korrekt übertragen und validiert werden. Weiterhin können automatisiere Tests für Systemfunktionalitäten, Netzwerkkonnektivität und andere infrastrukturelle Aspekte durchgeführt werden. Last but not least - und damit auch nicht die letzte Möglichkeit - kann das Robot Framework verwendet werden, um automatisiert Testberichte und Dokumentationen zu generieren, die den aktuellen Stand und die Ergebnisse der Testläufe zu beschreiben. (Zum Beispiel um Testergebnisse aus einer Pipeline direkt in ein Managementsystem wie Jira zu importieren)

Loose

Arbeitsschritte

Nutzen Sie den Online Editor auf der Robot Framework Seite, um erste Schritte mit den Testfällen zu machen.

Betrachten Sie das Beispiel "Simple Example":

  • 1 Wie heißen die Dateien, die nach einer Testausführung entstehen und einsehbar sind?
  • 2 Welche Testfälle beinhaltet das Beispiel?
  • 1 Ergänzen Sie den folgenden Testfall. Ist der Test erfolgreich durchgelaufen?
1
2
3
Administrator login
    Connect to Server
    Login Admin
  • 2 Implementieren Sie folgenden Testfall. Welche Fehlermeldung erhalten Sie? Was müsste passieren, um keinen Fehler zu erhalten?
1
2
3
4
5
Request Userlist as User
    Connect to Server
    Login User            ironman    1234567890
    Get Userlist
    [Teardown]    Close Server Connection
1
2
Get Userlist
    Get All Users
  • 3 Implementieren Sie einen erfolgreichen Testfall für die Funktion 'get_server_version' aus der
  • CustomLibrary.py. Eine Verifizierung [TERMREF:Verifizierung] des Ergebnisses ist nicht notwendig.

Wechseln Sie zum Beispiel BDD-Example

  • 3 Machen Sie sich mit dem Thema [TERMREF:BDD] vertraut. Beschreiben Sie den Aufbau des Testfalls unter 'Calculator_Test_Suite.robot'.
  • 4 Ergänzen Sie in der .robot-Datei die Zeile Then The Result Should Not Be "1", zusätzlich den folgenden Testfall in der .resource-Datei und erklären Sie, was dieser Testschritt verifiziert.
1
2
3
The Result Should Not Be "${expected}"
    Log    Checking Result
    Should Not Be Equal As Numbers    ${result}    ${expected}
  • 4 Ist es sinnvoll mehrere Schritte in einem Testfall zu nutzen, um Ergebnisse zu verifizieren? Wenn ja, gibt es ein Maximum?
Warnung:

Hinweis (nur bei Bedarf): VisibleTitle

Die bereitgestellten Codeabschnitte können per copy and paste in die Web-Konsole eingefügt und ausgeführt werden. Zusätzlich ist es zur Erfüllung der Aufgaben nicht notwendig die CustomLibrary.py zu erweitern.

Trace

Abgabe

Geben Sie ein Markdown-Dokument ab mit knappen Antworten zu den oben gestellten Fragen 1, 2, … Geben Sie diese Marker mit an.
Geben Sie ggf. Beispiele oder benutzte Quellen an.