Erfahrungen mit Robot Framework, es ist eine eigene Programmiersprache

Nach Arbeiten in einem großen Projekt (~ 200-Web-Entwickler) mit Robot Framework (RF) für ca. 3 Monate, halte ich den Begriff “Framework” in “RobotFramework” für ein wenig irreführend. Das Robot-Framework ist mehr als ein Framework (mehr als ein Rahmen), es ist auch eine eigene Programmiersprache.

In diesem Artikel will ich nicht Robot-Framework als Testautomatisierungs-Sprache schlecht machen, obwohl sich die Syntax ein wenig seltsam anfühlt. Ich möchte lediglich zeigen, dass Robot-Framework eine Programmiersprache ist und einige Schlussfolgerungen ziehen.

Robot-Framework hat eine eigene Syntax

Robot-Framework hat Variablen (mit unterschiedlichem Scope)

Sie erstellen diese wie folgt:

${hi} = Set Variable Hello, world!
${hi} = Set Test Variable Hello, world!
${hi} = Set Suite Variable Hello, world!
${hi} = Set Global Variable Hello, world!

BuiltIn-Bibliothek-Dokumentation

 

Robot-Framework hat Funktionen

In Robot-Framework werden Funktionen Schlüsselwörter (keywords) genannt.
Sie erstellen diese wie folgt:

Return One Value [Arguments] ${arg}
Do Something ${arg}
${value} = Get Some Value
[Return] ${value}

User Guide

 

Robot-Framework hat bedingte Anweisungen

Dies sieht wie folgt aus:

${result} = Run Keyword If  ${rc} == 0  Zero return value
... ELSE If 0 < ${rc} < 42 Normal return value
... ELSE If ${rc} < 0  Negative return value   ${rc}   arg2
... ELSE Abnormal return value   ${rc}

BuiltIn-Bibliothek-Dokumentation

 

Robot-Framework hat Schleifen

Und sie sehen wie folgt aus:

Run my hobbies
:FOR ${index} IN RANGE    1   11
\ Watch TV
\ Plague your neighbor
\ Play with your dog

User Guide

 

Robot-Framework hat seine eigene IDE

Es heißt “RIDE” und es hat seine eigenen Tücken.

Robot-Framework hat seine eigenen Bibliotheken

Schauen Sie beispielsweise in die Selenium2Library. Sie werden sehen, dass die Nomenklatur nichts mit der von der WebDriver-API gemeinsam hat.

… und Robot-Framework hat seine eigenen Fallstricke und Bugs

Da der Testcase-Timeout einen Fehler im der Reporting-Engine erzeugt, musste ich einen eigenen customized Timeout implementieren … loop… sleep… boilerplate…

 

Zusammenfassung und Fazit

  • Testautomatisierung ist Programmierung. Robot-Framework ist eine Programmiersprache. Und Sie benötigen Zeit diese zu lernen.
  • Ich habe keine Vorteile gegenüber Java/TestNG  gefunden (auch nicht nach 3 Monate arbeiten in Vollzeit mit RF).
  • Denken Sie an die Java-Web-Entwickler in Ihrem Projekt/Scrum-Team. Wollen diese das Lesen und Pflegen der Testskripten in einer unbekannten Programmiersprache?
  • Die Skill-Kombination von Robot-Framework und Browser-Automatisierung ist selten. In XING finden Sie die Skill-Kombination “Selenium UND Robot Framework” bei gerade mal 12 Personen. Aber die Skill-Kombination “Selenium UND Java” finden Sie bei mehr als 1000 Personen.
    • Denken Sie an Ihr Projekt Staffing: Es ist einfacher, ein Profi mit Java-Fähigkeiten zu finden als einen mit Robot Framework Fähigkeiten.
    • Denken Sie auch an die Größe der Community für Support, Entwicklung der Tools, Artikel…

Mein Fazit: Wenn Sie ein Abenteurer sind, versuchen Sie es mit Robot-Framework.

Fanden Sie den Artikel hilfreich?
[Gesamt: 0 Durchschnitt: 0] -

Leave a Reply