Tools zur Optimierung von Robot Framework - Dritter Teil: Beispiel und Fazit

Mittwoch, 26.2.2025

Ein Testfall

Verständlicher und wartbarer Code ist nicht nur in der Softwareentwicklung wichtig, sondern auch in der Testautomatisierung. Reise mit uns durch das Robot Framework Clean-Code-Universum: Von einfachen Korrekturen bis hin zu umfangreichen Regelkatalogen ist alles dabei. Hierzu stellen wir Dir drei Tools vor, mit denen Du Deinen Code aufräumen kannst. Im Team, beziehungsweise im Unternehmen verankerte, Clean-Code-Regeln auch in der Automatisierung können zudem berücksichtigt werden. 

Beispiel  

Als Beispiel haben wir einen einfachen Testfall mit Robot Framework geschrieben.  

Auch ohne Tools ist ersichtlich, dass der Code unleserlich ist. Sieht man diesen jetzt noch 100 Mal, wird es immer schwerer den Code zu verstehen und letztendlich zu warten. Deshalb sollten die Tester:innen schon bei der Automatisierung auf die Lesbarkeit des Codes achten und diesen regelmäßig aufräumen. In den folgenden Abschnitten wollen wir Euch zeigen, wie die Werkzeuge Euch unterstützen können, cleanen Robot Framework Code zu schreiben.  

Konsolenbefehle 

Robocop 

Die Struktur der Konsolenbefehle haben wir bereits in unserem ersten Teil beschrieben. Für unser Beispiel haben wir folgenden robocop Befehl ausgeführt.  

Bei diesem Befehl wurde das Ausschlussprinzip angewandt. Das bedeutet, dass wir zuerst alle Standardregeln aufgerufen haben (--include/-i * ). Zu diesen Standardregeln gehören Regeln zur Dokumentation, zur Benennung, zu Fehlern, zur Länge, zu Kommentaren, zu Duplikaten und vieles mehr.  

Als nächstes haben wir die Regel zur Überprüfung von Tags entfernt, da wir Tags in unserem Code nicht verwenden (--exclude/-e *tag*). Zusätzlich änderten wir das Error-Level der Regel „line-too-long“ von Warnung auf Fehler (-c line-too-long:severity:e). Wir stellten außerdem ein, dass nur Fehler und Warnungen in der Ergebnislist angezeigt werden sollen (--threshold/-t W).  

Zuletzt haben wir das Anzeigeformat der Ergebnisse angepasst, sodass die Nummer der Codezeile an erster Stelle steht, gefolgt von der Fehlerstufe, der Fehlernummer und dem Fehler selbst (--format/-f "Codeline {line}-[{severity}] {rule_id} {desc}"). Nach Ausführung des Befehls erhielten wir folgendes Ergebnis: 

Mit der Option –-reports all werden die Regelverstoße mit Bericht ergänzt. 

Robocop hilft uns, Fehler in der Struktur des Codes leichter zu finden. Leider bietet Robocop nicht die Möglichkeit, die gefundenen Abweichungen automatisch zu beheben. Dafür können wir Robotidy verwenden. 

Robotidy 

Für Robotidy sieht der Konsolenbefehl für unser Beispiel wie folgt aus: 

Mit diesem Befehl haben wir die Codezeilenlänge auf 150 begrenzt (--line-length 150) und die Regeln festgelegt, die wir darüber hinaus verwenden möchten. Zum Beispiel haben wir zuerst die Reihenfolge der Sektionen festgelegt (MergeAndOrderSections). Dann haben wir die Variablen so eingerichtet, dass alle Variablen großgeschrieben und durch Bindestriche getrennt werden (RenameVariables).  Mit dem Befehl AlignTestCasesSection richten wir die Testfälle für die Ausrichtung ein. Wir konfigurieren den Abschnitt Schlüsselwörter auf die gleiche Weise (AlignKeywordsSection). Anschließend formatieren wir die Dateistruktur so, dass nach jedem Abschnitt nur eine Leerzeile steht (NormalizeNewLines). Außerdem haben wir einige Befehle deaktiviert (ReplaceRunKeywordIf, ReplaceReturns). Wir haben SplitTooLongLine verwendet, um den Code in die nächste Zeile zu verschieben.

Hinweis:  

Unser Beispielbefehl berücksichtigt nicht alle möglichen Optionen. Du kannst alle aktiven, bereitgestellten Aktionen über den Befehl --list all aufrufen. Hier ist ein Beispiel, wie unsere Konfiguration aussieht.

Nach der Ausführung des robotidy-Befehls sieht unsere Beispieldatei wie folgt aus: 

Sherlock 

Für Sherlock zeigen wir Dir in einem Beispielbefehl alle Konfigurationsmöglichkeiten. Mehr über die Konfigurationsmöglichkeiten von Sherlock findest Du in unserem zweiten Teil.

Das Ergebnis erhalten wir in folgender Darstellung:

sherlock

Hinweis: Aufgrund eines Bugs im Tool ist der Report derzeit nicht reproduzierbar und das Bild wird in niedriger Qualität angezeigt. Wir kümmern uns darum, sobald das Problem behoben ist.

 

Beispiel mit Konfigurationsdatei 

Wenn Du auf Konsolenbefehle verzichten möchtest, hast Du wie bereits erwähnt, die Möglichkeit eine Konfigurationsdatei zu erstellen. Robocop und Robotidy teilen sich dabei eine gemeinsame Konfigurationsdatei, welche in die Abschnitte [tool.robocop] und [tool.robotidy] aufgeteilt wird. 

Die pyproject.toml ist wie im Bild dargestellt aufgebaut. 

Wenn Du Dir die Datei erstellt hast und die gewünschten Konfigurationen vorgenommen hast, werden die Einstellungen beim Aufruf des Konsolenbefehls berücksichtigt. Dazu wird robocop oder robotidy in das Terminal eingegeben. Das Ausgabeformat für Robocop ist identisch zum Ausgabeformat des Konsolenbefehls ohne Konfigurationsdatei. Enthält die Konfigurationsdatei den Ausdruck „output = "robocop.log"“ wird der Bericht in einer Datei ausgegeben. 

Wenn in der Konfigurationsdatei von Robotidy die Option „overwrite“ auf true gesetzt ist, werden die Dateien automatisch angepasst, wenn der Robotidy-Befehl aufgerufen wird. Hat der Parameter „overwrite“ hingegen den Wert „false“, werden keine direkten Änderungen am Code vorgenommen. In diesem Fall bleibt der ursprüngliche Code unverändert.

Wir empfehlen Dir die Verwendung einer Konfigurationsdatei aufgrund der Übersichtlichkeit und der einfachen Anpassungs- und Erweiterungsmöglichkeit. Zudem hat die Konfigurationsdatei einen weiteren Vorteil. Alle im Team arbeiten mit der gleichen Version der vereinbarten Regeln. Durch das Bündeln der Regeln in einer Datei sind die Vereinbarungen immer auf dem aktuellen Stand und können vom Team auf einfachem Weg über das Terminal genutzt werden. Die Qualität des Codes ist somit für alle Teammitglieder gesichert.  

Robocop und Robotidy in Echtzeit nutzen 

Um Robocop in Echtzeit nutzen zu können, ist die Installation der Visual Studio Code Erweiterung erforderlich, die mit Robocop konfiguriert werden kann. Wir empfehlen die Verwendung der Erweiterung RobotCode. Mit Robocop erhält der oder die Ersteller:in bereits während der Erstellung der Robot Framework-Skripte Hinweise auf Abweichungen, die direkt korrigiert werden können. Dies ermöglicht eine effizientere Entwicklung und trägt dazu bei, die Qualität der Skripte von Anfang an zu sichern.

robocopFehler

 

Es ist jedoch wichtig, die Parameter entsprechend der gewählten Konfiguration anzupassen, bsp.:

robocopBeispiel

 

Es gibt zwei Möglichkeiten, Robotidy in Echtzeit zu nutzen. Erstens kann man Robotidy mit der VSCode-Erweiterung RobotCode verwenden, bsp.:

robotidyFehler

 

In diesem Fall wird eine Liste von Meldungen im Bereich „Problems“ angezeigt.

robotidyBeispiel

 

Wenn man jedoch die automatischen Anpassungen der Robotidy-Regeln im Code nach jedem Speichern nutzen möchte, sollte man die zweite Möglichkeit in Betracht ziehen. Um dies zu ermöglichen, muss die „overwrite“ in der Konfigurationsdatei auf true gesetzt und die VSCode-Einstellung „Format on Save“ aktiviert werden.

formatOnSave

 

Dann werden alle in der Konfigurationsdatei festgelegten Robotidy-Regeln nach jedem Speichern auf die Dateien angewendet. Wichtig ist auch, den richtigen Pfad zu den Dateien in der Konfigurationsdatei anzugeben. Weitere Informationen dazu sind in der Dokumentation von Robotidy zu finden.

 

Fazit 

Die drei vorgestellten Tools können sehr gut ergänzend eingesetzt werden und sind in ihrer Gesamtheit sehr mächtig. Durch die Konfigurations- und Weiterentwicklungsmöglichkeiten sind sie auf verschiedenste Gegebenheiten individualisierbar. Der Nutzen stellt sich gegenüber dem geringen Einrichtungsaufwand schnell ein. Du erhältst nicht nur eine gut getestete Anwendung, sondern auch wartbaren und übersichtlichen Code für ihren Einsatz der Testautomatisierungslösung. Weiterhin kannst Du Dich aufgrund des Einsatzes der Tools auf den Inhalt und die Konzeption konzentrieren. Lästige Aufräumarbeiten bleiben dir erspart. 

 

Hier findest du die anderen Teile unserer Blogreihe:

 


Die Autorinnen

Alena DrebezgovaAlena Drebezgova  arbeitet seit 2024 als Beraterin bei der viadee IT-Unternehmensberatung. Zuvor war sie bereits als Werkstudentin bei der viadee aktiv tätig. Ihr Fokus liegt in den Bereichen Testmanagement, Testautomatisierung und Qualitätssicherung.


 

 

 

 

Lisa CobaltzkyLisa Sophie Colbatzky unterstützt Individuen sowie Teams dabei ihre Potentiale zu entfalten. Der Einsatz von kreativen Methoden und das Fördern von wertschätzendem Miteinander dürfen bei ihr nicht fehlen

 

 

 

 


zurück zur Blogübersicht

Diese Beiträge könnten Sie ebenfalls interessieren

Keinen Beitrag verpassen – viadee Blog abonnieren

Jetzt Blog abonnieren!

Kommentare

Alena Drebezgova

Alena Drebezgova

Alena Drebezgova  arbeitet seit 2024 als Beraterin bei der viadee IT-Unternehmensberatung. Zuvor war sie bereits als Werkstudentin bei der viadee aktiv tätig. Ihr Fokus liegt in den Bereichen Testmanagement, Testautomatisierung und Qualitätssicherung.
Alena Drebezgova bei LinkedIn