Die Testing-Plattform Robot Framework, Teil 1 Robot Framework – Low-Code und maximale Flexibilität

Von Mirco Lang 6 min Lesedauer

Anbieter zum Thema

Automation von Tests oder Aufgaben mit simpler, menschenlesbarer Sprache – wohl kaum ein Tool realisiert dies besser als das quelloffene Robot Framework. Wir geben Tipps für den Einstieg in zwei Akten.

Robot-Framework-Tests in Visual Studio Code.
Robot-Framework-Tests in Visual Studio Code.
(Bild: Lang / Robocorp)

Robot Framework ist vermutlich eines der spannendsten Projekte rund um das Thema Application Testing und darüber hinaus auch für die Automatisierung von Prozessen. Und das aus ganz simplen Gründen: Zunächst mal handelt es sich um ein Open-Source-Projekt mit großer und aktiver Community – kostenfrei, anpassbar und umgeben von einem recht ansehnlichen Ökosystem aus Erweiterungen, hilfreichen Tools und Best Practices.

Davon ab ist der wohl größte Pluspunkt der Low-Code-Ansatz: Tests werden nicht mit Code geschrieben, sondern mit ganz simplen Keywords, die weitgehend intuitiv zu verstehen sind. Ein Browser soll mit einer URL geöffnet werden? Hier genügt ein triviales „Open Browser example.com“! Doch man muss nicht auf Python & Co. verzichten – eigenen Code anzubinden, ist denkbar einfach.

Nichtsdestotrotz ist das Robot-Framework-Universum zu Beginn nicht ganz einfach nachzuvollziehen, was den vielen Begrifflichkeiten und Tools sowie der großen Flexibilität geschuldet ist. In dieser Mini-Serie verraten wir zunächst, was Robot Framework zu leisten vermag, wie das Ökosystem aufgebaut ist und warum das System so reizvoll ist. Im zweiten Teil folgt dann ein Schritt-für-Schritt-Einstieg in die Praxis – angefangen mit der etwas lästigen Inbetriebnahme unter Ubuntu bis zum erfreulich einfachen Einbinden eigener Python-Skripte.

Was ist Robot Framework?

Robot Framework, im Folgenden auch RF, ist für zwei Aufgabenbereiche gedacht, die allerdings sehr nah beieinander liegen – insbesondere was die Umsetzung angeht. Zum einen handelt es sich um ein Framework für Testautomatisierung. Abgedeckt werden dabei alle Testarten, vom Unit Testing über API- bis hin zu Akzepttanztests. Insbesondere bei Letzteren spielt Robot Framework seine Stärken aus.

Ganz konkret könnte man sich beispielsweise den Test eines Online-Shops vorstellen. Ein Testfall könnte hier so aussehen, dass RF auf dem Desktop einen Browser öffnet, die Shop-URL aufruft, sich am System anmeldet, Produkte in den Warenkorb legt und letztlich auscheckt. Ohne an dieser Stelle auf die technischen Details einzugehen, hier ein Beispiel für einen Test auf ein erfolgreiches Einloggen:

*** Test Cases ***
Valid Login
   Open Browser To http://example.com/shop
   Input Username   demo
   Input Password   mode
   Submit Credentials
   Welcome Page Should Be Open
   [Teardown] Close Browser

Der oben gezeigte Testfall an einem Login-Fenster ausprobiert.
Der oben gezeigte Testfall an einem Login-Fenster ausprobiert.
(Bild: Lang / Robocorp)

Was dieser Test macht, dürfte auch für jene nachvollziehbar sein, die noch nie von Robot Framework gehört haben. Und genau hier liegt einer der Reize des Systems: Man benötigt keine Programmierkenntnisse, um Tests aus bestehenden Keywords zu konstruieren. Doch hinter den Keywords laufen natürlich beispielsweise Python-Skripte und -Funktionen, so dass auch Code-Junkies auf ihre Kosten kommen können.

HTML-Report mit vier Testfällen.
HTML-Report mit vier Testfällen.
(Bild: Lang / Robocorp)

Die Ergebnisse solcher Tests liefert Robot Framework in Form gut aufbereiteter, interaktiver Berichte und Log-Dateien auf HTML-Basis (im Bild vorne ein Beispiel). Solche Reports lassen sich durchsuchen, filtern und bis auf kleinste Testebene herunterbrechen, um zum Beispiel eingesetzte Variablen einsehen zu können.

Eine Grenze für Testobjekte gibt es nicht wirklich, letztlich sind die Keywords nur eine Abstraktionsebene, die über beliebigen Code gestülpt werden kann – wobei ein Großteil des Üblichen bereits über Bibliotheken abgedeckt ist.

Das Framework beherrscht aber auch Robotic Process Automation (RPA). Beim Testing geht es darum, Fehler zu finden – nach strikten Regeln, mit Testdaten. Bei der Prozessautomation sollen hingegen Prozesse immer erfolgreich ausgeführt werden – zudem werden auch produktive Daten verändert. Von den konzeptionellen Unterschieden abgesehen, funktioniert beides auf technischer Ebene nahezu exakt gleich in Robot Framework.

Auf begrifflicher Ebene ist einmal von Tasks und einmal von „Test Cases“ die Rede, aber die Verarbeitung ist identisch. Die Unterscheidung Tasks und Tests ist in Artikeln, Beispielen, Tools und der Dokumentation nicht immer ganz konsistent und kann daher etwas verwirrend sein. Für den Anfang lässt sich das ignorieren.

Das RF-Ökosystem – Robocorp, RPA

Wie bei jedem neuen Thema, wird der User in der Robot-Framework-Welt mit etlichen Fachbegriffen und Stakeholdern torpediert, die gerne mal nicht erklärt werden. Das eigentliche Projekt ist schlicht Robot Framework, das auf GitHub gepflegt wird.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Als nächstes taucht die Robot Framework Foundation auf. Die gemeinnützige Organisation mit Sitz in Finnland, die die Entwicklung des Frameworks forciert, Gelder beschafft, die RoboCon-Messe veranstaltet und so weiter. Zu den Mitgliedern gehören beispielsweise Capgemini, Cisco, DB Schenker, Kuka, Provinzial, Checkmk und Nokia.

Weiterhin gibt es noch Robocorp, ebenfalls ansässig in Finnland. Robocorp bietet eine Plattform für Automationen – zukünftig nur noch auf Python-Basis, wie erst Anfang des Jahres mitgeteilt wurde. Bislang hat Robocorp jedoch auf Robot Framework gesetzt und zwei Tools entwickelt, die einem über den Weg laufen: RCC und das RPA Framework.

Das RPA Framework ist eine Sammlung von Tools und vor allem Bibliotheken für RPA mit Robot Framework (oder Python) – quasi eine Art „Meta-Bibliothek“, die wiederum Zugriff auf beispielsweise Browser-Bibliotheken gibt, die auch für die oben bereits erwähnten Keywords wie „Open Browser“ verantwortlich sind. Und um die Verwirrung zu komplettieren: Obwohl das Label RPA vornan steht, kann sie natürlich auch fürs Testing verwendet werden.

Ein Beispiel: Für Web-Automatisierungen und -Tests wird meist wahlweise ein Selenium- oder ein Playwright-Browser eingesetzt. In Robot-Framework-Projekten kann letzterer sowohl über RPA Framework als auch über den sogenannten Robotframework-Browser genutzt werden.

Wunderwaffe RCC

Wirklich spannend wird es beim Robocorp-Tool RCC. In der Praxis laufen Tests meist in virtuellen Umgebungen ab, schließlich werden immer wieder unterschiedliche Abhängigkeiten, Python-Versionen, Umgebungsvariablen und so weiter benötigt. Also landen Tests in der Regel in eng-Umgebungen, die entsprechend aufgesetzt werden müssen.

RCC kann diese Aufgabe automatisieren. Hier lassen sich virtuelle, Python-basierte Umgebungen deklarativ per YAML-Datei erzeugen und vor allem verteilen. Heißt: Ein „Automationspaket“, also ein Test- oder RPA-Projekt, ist damit völlig portabel! Alles, was für die Ausführung benötigt wird, sind die RCC-Binary und ein Ordner mit den gesammelten Tests beziehungsweise Automationen. Bei der Ausführung werden dann virtuelle Umgebungen aufgesetzt, Abhängigkeiten installiert und letztlich die eigentlichen Tests/Automationen ausgeführt.

Den Nutzen von RCC darf man wirklich nicht unterschätzen. Wer sich weiter damit beschäftigt, sollte aber eines bedenken: Bei RCC geht es offiziell eigentlich ausschließlich um RPA-Angelegenheiten – es eignet sich aber genauso fürs Testing. Bestehende Tests lassen sich übrigens ziemlich einfach RCC-kompatibel machen. Es fehlen lediglich zwei YAML-Dateien für die Deklaration der Umgebung und der auszuführenden Aufgaben.

Bibliotheken und Tools

Wie der Name schon sagt, liefert Robot Framework im Grunde nur einen Rahmen, um Tests auf Basis von Keywords zusammenstellen zu können. Ein Keyword kann dabei zum Beispiel schlicht und ergreifend der Name einer Python-Funktion aus einem Skript sein, das in der Test-Deklaration referenziert wird.

Den eigentlichen Funktionsumfang liefern aber die vorhandenen Robotframework-Bibliotheken; hier ein kleiner Auszug:

  • SeleniumLibrary: Web-Testing
  • Appium Library: Tests für Android und iOS
  • RESTinstance: Tests auf HTTP-JSON-APIs
  • WatchUI: Visualisiert Unterschiede zweier Screenshots
  • DocTest Library: Vergleich von Dokumenteninhalten (auch PDF)
  • CURFLibrary: Testing auf dem CAN-Bus
  • RoboSAPiens: Automatisierung von SAP-Anwendungen

Schon mit den internen Keywords und Tools lässt sich viel anstellen. Apropos Tools: Extern gibt es jede Menge hilfreicher Robotframework-Werkzeuge wie das obligatorische vim-Plugin, Syntax-Highlighting für Notepad++ und sogar eine eigene IDE namens RIDE.

Robot-Framework-Tests in Visual Studio Code.
Robot-Framework-Tests in Visual Studio Code.
(Bild: Lang / Robocorp)

Fast selbstverständlich wird Robot Framework auch in Visual Studio Code unterstützt. Dort lassen sich recht bequem Test-Sammlungen, einzelne Tests oder Keywords ausführen, env-Umgebungen werden erkannt, Debugging ist mit an Bord und so weiter.

Bevor es nun an die Praxis geht, noch etwas Schönes an Robot Framework: Es bringt unterschiedliche Teams und technische Fähigkeiten zusammen. Entwicklerinnen und Entwickler könnten zum Beispiel ihre Python-Tests in das Framework einbinden und das technische Produktmanagement wäre dazu in der Lage, daraus per Low-Code abstraktere Tests etwa für Tests aus Nutzersicht zusammenschrauben.

(ID:49986633)