Wie man Robot Framework in der Testautomatisierung einsetzt

Was ist Robot Framework?Robot-framework-logo

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.

Building scalable test automation

“Robot Framework ist ein generisches Automatisierungsframework, das grundsätzlich mit jeder Schnittstelle verwendet werden kann.“

Robot Framework und Qentinel sind von Anfang an miteinander verbunden

Ü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.

2002

Qentinel wird gegründet und führt erste Automatisierungsprojekte durch.

2003

Pekka Klärck (damals Pekka Laukkanen) kommt als Trainee für Testautomatisierung zu Qentinel.

2004

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.

2005

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

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

2007

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.

2008

Die Version 2.0 von Robot Framework wird als Open-Source-Software am 24. Juni 2008 veröffentlicht.

2009 - 2014

Robot Framework setzt sich durch. Es wird zum beliebtesten Testautomatisierungswerkzeug in seinem Heimatland Finnland und gewinnt weltweit an Popularität.

2015

Qentinel und andere Unternehmen, die Robot Framework aktiv nutzen, gründen die Robot Framework-Stiftung, um seine Einführung und Entwicklung zu fördern.

2016 - 2017

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.

2018

Qentinel veröffentlicht die cloudbasierte Testplattform Qentinel Pace, wobei Robot Framework eine Schlüsselrolle im Core Executor einnimmt.

2021

Qentinel veröffentlicht QWeb,QWeb, die Library für Web-Automatisierung von Qentinel Pace, als Open Source.

 

Qentinel and Robot Framework together

Was zeichnet Robot Framework aus?

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.

sbslsl_1920

Wie funktioniert ein keyword-getriebenes Automatisierungsframework?

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.

person-holding-umbrella-standing-above-stairs-1695056

Welche Vorteile bietet Keyword-getriebenes Testen?

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)

auto

Robot Framework im Vergleich zu anderen populären Open-Source-Testtools und -Frameworks wie beispielsweise Selenium.

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.

“Ein Vorteil des keyword-getriebenen Testens ist, dass es den Wartungsaufwand erheblich reduziert“

Tipps für das Design automatisierter Tests in Robot Framework

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.

Test with efficiency and effectiveness

piuhoja

Wie Sie plattformübergreifende Testfälle mit PaceWords 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.

PaceWords in detail

So verringern Sie den Aufwand für die Testautomatisierung.

Drei wesentliche Dinge beeinflussen die Produktivität, Geschwindigkeit und Effizienz der Testautomatisierung:

  1. Testumgebungen
    Wenn Sie bei Null und in einer lokalen Testumgebung anfangen, bedeutet das sehr viel Aufwand für den Aufbau und die Wartung, aber auch Investitionen. Wenn Sie Ihre eigene Testumgebung mit Selenium und Robot Framework ausbauen wollen, dann müssen Sie einen erheblichen Teil Ihrer Zeit in die Wartung investieren, erfahrungsgemäß leicht über 50 %. Hierbei spielen viele Faktoren wie Browserversionen, Bibliotheksversionen, andere Pakete usw. eine Rolle. Außerdem müssten Sie dedizierte isolierte Laufzeitumgebungen für die Ausführung Ihrer Tests in Ihrer CI/CD haben.

    Wenn Sie dagegen Qentinel Pace verwenden, können Sie Testumgebungen in wenigen Sekunden aufsetzen und müssen sich keine Gedanken über deren Wartung machen. Viele Unternehmen, die Qentinel Pace einsetzten, reduzieren ihren Wartungsaufwand ganz massiv. Denn bei Qentinel Pace sind alle Robots bereits isolierte und ganz einfach konfigurierbare Testumgebungen, und Sie können so viele davon einsetzen, wie Sie möchten. Dies sorgt für deutlichen Schwung und eine nachhaltige Zeitersparnis. 

  2. Design der Testfälle:
    Das offene Robot Framework gibt Ihnen die Möglichkeit, Dinge auf verschiedene Arten zu machen: „quick and dirty“ oder besonders benutzerfreundlich oder leicht erlernbar oder mit Fokus auf die Wartungskosten. Wir haben unsere Strategie zum Design von Testfällen im Laufe vieler großer Testautomatisierungsprojekten immer weiter entwickelt. Dabei sollten auch Business User in der Lage sein, Tests zu schreiben und wir mussten immer die Wartungskosten im Blick haben. So entstanden die PaceWords. 

  3. Teamwork: 
    Wenn die an einem Testautomatisierungsprojekt beteiligten Tester und Teams über den Globus verteilt sind, entsteht ein hoher Koordinationsaufwand. Um diesen zu minimieren ist es gut, wenn alle Ergebnisse zentral gespeichert sind und jeder im Projekt darauf Zugriff hat. Auch die Testmanager sollten Ergebnisse abrufen und sogar selbst Testläufe initiieren können. Hier können Sie sehen, wie bei Qentinel Pace alle Ergebnisse zentral gespeichert und jedem Berechtigten zugänglich gemacht werden.

Starten Sie die kostenlose Testversion