Robot Framework ist ein generisches Open-Source-Automatisierungsframework. Es kann zum Erstellen einer Testautomatisierung oder für Prozessautomatisierung verwendet werden. Robot Framework wurde historisch gesehen für Testautomatisierungszwecke entwickelt und später für die Prozessautomatisierung erweitert.
Robot Framework hat im Softwarebereich einen sehr großen Bekanntheitsgrad – so wird es beispielsweise über 5 Millionen Mal pro Jahr heruntergeladen. Zu stetig wachsenden Robot Framework Community gehören vor allem aktive Nutzer und Entwickler. Hier findet ein reger Austausch statt; ebenso trägt die Community zur Entwicklung der Libraries bei, meldet Bugs usw.
Robot Framework kann prinzipiell mit jeder beliebigen Schnittstelle verwendet werden. Das Core Framework versteht Tests, führt sie aus und generiert Protokolle und Reports. Architektonisch gesehen sind Libraries ein Schlüsselkonzept in Robot Framework, denn sie werden für die Interaktionen mit den getesteten Systemen benötigt. Robot Framework wird mit einer Reihe von Libraries ausgeliefert. Zusätzlich existieren Unmengen von Libraries, die von der Community entwickelt wurden und für Robot Framework-Nutzer frei zugänglich sind. Ein Beispiel hierfür ist Selenium2Library für die Automatisierung von Webanwendungen.
Über viele Jahre hinweg hat Qentinel Robot Framework eingesetzt, um komplexe Testautomatisierungen für seine Kunden zu entwickeln. Schließlich wurde Robot Framework zu einer Kernkomponente in Qentinel Pace, der cloudbasierten Robotic Software Testplattform von Qentinel. Daher können Sie Ihre bestehenden Robot Framework Automatisierungs-Assets verwenden und sie in Qentinel Pace ohne jegliche Modifikationen einsetzen. Probieren Sie es hier aus.
Qentinel wird gegründet und führt erste Automatisierungsprojekte durch.
Pekka Klärck (damals Pekka Laukkanen) kommt als Trainee für Testautomatisierung zu Qentinel.
Trotz des Erfolgs seiner Testautomatisierungsprojekte ist das Qentinel-Team mit der Leistungsfähigkeit der bestehenden Technologien nicht zufrieden. Als alternativer Ansatz wird die keyword-basierte Testautomatisierung von Hans Buwalda ausgewählt.
Die grundlegenden Ideen für Robot Framework werden in mehreren Projekten für Qentinel-Kunden getestet und in Pekka Klärcks Masterarbeit weiterentwickelt. Pekka wollte ein generisches Framework aufbauen, das jedes Testautomatisierungsprojekt nutzen kann, ohne dass alles von Grund auf neu entwickelt werden muss.
Laukkanen, Pekka: "Data-Driven and Keyword-Driven Test Automation Frameworks", 2006
Nokia setzt Robot Framework ein und die Technologie wird unter Pekkas architektonischer Leitung bei Nokia weiterentwickelt. Pekka und Harri Töhönen von Qentinel kommen zusammen mit Petri Haapio von Nokia auf die Idee, Robot Framework unter einer Open-Source-Lizenz zu veröffentlichen.
Lesen Sie Esko Hannulas Blog: How I first met Robot Framework - and what happened then
Die Vorbereitungen für das Open-Sourcing von Robot Framework beginnen. Die Annahme: Der Nutzen der Technologie wächst umso schneller, je größer die Anzahl der User ist. Schließlich erfordert die Architektur von Robot Framework einen aktiven Beitrag der Community, damit das Framework gedeihen kann.
Weitere Forschungsarbeiten über die Keyword-basierte Testautomatisierung unterstützen die Entwicklung der Technologie, darunter die Master Thesis des Qentinel Mitarbeiters Juha Rantanen über test-driven Development (TDD).
Juha Rantanens Thesis über TDD: Acceptance Test-Driven Development with Keyword-Driven Test Automation Framework in an Agile Software Project
Pekka verlässt Qentinel, um eine eigenständige Karriere als Mastermind hinter Robot Framework zu verfolgen.
Die Version 2.0 von Robot Framework wird als Open-Source-Software am 24. Juni 2008 veröffentlicht.
Robot Framework setzt sich durch. Es wird zum beliebtesten Testautomatisierungswerkzeug in seinem Heimatland Finnland und gewinnt weltweit an Popularität.
Qentinel und andere Unternehmen, die Robot Framework aktiv nutzen, gründen die Robot Framework-Stiftung, um seine Einführung und Entwicklung zu fördern.
Im Zuge der Kooperation mit einigen seiner anspruchsvollen Kunden erkennt Qentinel die steigenden Anforderungen an Komplexität, Umfang und Zuverlässigkeit von Testautomatisierungslösungen. Qentinel entwickelt Lösungen, um Robot Framework mit Technologien zum Management der Testinfrastruktur, der Zusammenarbeit in Testing-Teams und Metriken zur Software-Qualität zu ergänzen.
Qentinel veröffentlicht die cloudbasierte Testplattform Qentinel Pace, wobei Robot Framework eine Schlüsselrolle im Core Executor einnimmt.
Qentinel veröffentlicht QWeb,QWeb, die Library für Web-Automatisierung von Qentinel Pace, als Open Source.
Das Tolle an Robot Framework ist, dass es sich erweitern und überall integrieren lässt. Man kann sich seine Libraries ganz nach den eigenen Bedürfnissen zusammenstellen und sie zu Robot Framework hinzufügen. Wenn Sie beispielsweise eine Schnittstelle zur Interaktion mit Ihrem neuen Saugroboter (oder was immer Ihnen in den Sinn kommt) bauen wollen, können Sie diese mit Robot Framework testen.
Diese Freiheit hat aber auch ihren Preis. Da es sich um ein so generisches und flexibles Framework handelt, muss man ständig Neues dazulernen, da unter Umständen auch spezielle Libraries erstellt, verschiedene Versionen installiert und Standardprozesse festgelegt werden müssen.
Robot Framework ist keyword-getrieben. Das bedeutet, dass der Endbenutzer alle Befehle mit einigen einfachen Schlüsselwörtern schreibt – sogenannten key words, die gelegentlich auch unter der Bezeichnung action words bekannt sind.
Ein Keyword kann ein einzelner Befehl sein wie z. B. „ClickText“, der dann ein Argument erhält, zum Beispiel „Click Text Ok“, um auf den OK-Button in einer Anwendung zu klicken. Falls eine solche Schaltfläche nicht gefunden wird, wird eine Ausnahme (Exeption) ausgelöst und der Test schlägt fehl. Ein Keyword kann auch aus einer Kombination mehrerer anderer Keywords bestehen, also beispielsweise „Enter Login Credentials and Click Ok“. So kann eine Abstraktionsschicht aus Keywords erstellt werden.
Ein Testfall ist eine Sammlung von Keywords mit oder ohne tiefere Hierarchie. Wenn ein Keyword aufgerufen wird, führt die unterste Ebene schließlich etwas Konkretes aus, z. B. Klicken oder Tippen. Die Definition der untersten Keywords ist in Python geschrieben; das Schreiben in Jython wird jedoch auch unterstützt. Im Kern führt Robot Framework einen Python-Code aus, während der Tester mit einem englischsprachigen Keyword interagiert.
Der Vorteil liegt darin, dass es die Wartungsanfälligkeit reduziert, die durch Änderungen am System bzw. an der Software Under Test (SUT) verursacht wird. Wenn sich zum Beispiel Bildschirmlayouts ändern oder das System auf ein anderes Betriebssystem migriert wird, dann müssen kaum Änderungen an den Testfällen vorgenommen werden: Die Änderungen werden in der Keyword Dokumentation (oder im Keyword Code) vorgenommen, und zwar nur einmal, egal wie oft das Keyword in den Testfällen verwendet wird, und dies ist ein riesiger Fortschritt im Testdesign
Da die Art und Weise wie das Keyword ausgeführt wird, in der Dokumentation sehr detailliert beschrieben wird, kann der Test von praktisch jedem User durchgeführt werden. Dadurch kann Keyword-getriebenes Testen sowohl für manuelles Testen als auch für automatisiertes Testen verwendet werden. (Wikipedia)
Robot Framework unterscheidet sich insofern, dass es ein extrem generisches und offenes Automatisierungsframework ist. Daher ist es praktisch universell verwendbar. Obwohl Selenium beispielsweise kein Framework ist, kann es nicht für das Testen nativer Anwendungen verwendet werden. Cypress hingegen ist ein Framework, aber es kann nicht für das Testen von Aufzügen oder IoT verwendet werden.
In Robot Framework werden Testfälle mit Keywords geschrieben. Das sind einfache Befehle für die Software, die Sie automatisieren wollen. Sie können Keywords in andere Keywords einbetten, damit Sie die gewünschte Abstraktionsebene erreichen. Es gibt Standard-Libraries, die mit Robot Framework ausgeliefert werden, und Zusatz- Libraries für verschiedene Zwecke. Außerdem können Sie auch eigene Libraries für Ihren speziellen Bedarf erstellen.
Testfälle werden in Qentinel Pace ebenfalls mit Keywords geschrieben. Sehr häufig wird Qentinel Pace für plattformübergreifende End-to-End UI-Tests genutzt. Die Keywords heißen hier PaceWords. Sie sind intuitiv verständlich, plattform- und anwendungsunabhängig. PaceWords nutzen einen Technologie-Stack, um mit dem auf der grafischen Benutzeroberfläche sichtbaren Text zu interagieren und sie gewährleisten eine starke, robuste Bilderkennung. Im Grund interagiert man dabei mit dem Text, der auf dem User Interface sichtbar ist, ähnlich wie bei den xpaths in Selenium. Dadurch sind PaceWords sehr einfach zu schreiben, zu lesen und zu warten. PaceWords bilden eine plattform-unabhängige Abstraktionsschicht. Nehmen wir an, ein User möchte einen automatisierten Test erstellen, um auf eine OK-Schaltfläche in einer App zu klicken, die mal auf einem Mobilgerät, mal in einem Webbrowser und mal auf einem Desktop ausgeführt wird – alles, was er dazu schreiben muss, ist „ClickText OK“.
Der dabei verwendete Technologie-Stack wie Computer Vision, Selenium, Appium usw. ermöglicht es PaceWords, plattformübergreifend zu arbeiten, ohne dass sich der Anwender darum kümmern muss. Darüber hinaus ist bei PaceWords ein Fallback von einer Technologie auf eine andere möglich, um einen bestimmten Fehler zu checken. Wenn zum Beispiel ein Element mit der Web-Automatisierungstechnik nicht sichtbar ist, kann Qentinel Pace Computer Vision einsetzen, um dies zu überprüfen.
Wenn Sie eine Webanwendung mit Qentinel Pace automatisieren wollen, müssen Sie sich nicht mit xpaths und Timeouts herumschlagen, wie es bei der Selenium-Bibliothek der Fall ist.
Abgesehen davon können Sie genau wie bei Robot Framework Ihre eigenen Libraries erstellen und diese in Qentinel Pace ausführen. Qentinel Pace kann zum Beispiel einen physischen Roboterarm steuern, der ihre App-Tests auf einem echten Touchscreen-Display durchführt.
Auch wir nutzen Robot Framework, doch es erfordert einigen Aufwand bei der Einrichtung und Wartung. Daher kann Qentinel Pace eine große Hilfe sein, wenn Sie zum Beispiel vor einem neuen Release viele Tests in kurzer Zeit durchführen oder kontinuierlich testen wollen.
Drei wesentliche Dinge beeinflussen die Produktivität, Geschwindigkeit und Effizienz der Testautomatisierung: