Robot Framework – Feature gefunden :-)

Passend zu Ostern bin ich gestern im Robot Framework genau über das Feature gestolpert, dass ich schon immer vermisst habe und welches dabei schon die ganze Zeit da war … aber eins nach dem anderen.

Bei automatisierten Tests ist es eigentlich fast immer so, dass bestimmte Werte in den Tests von der Testumgebung abhängen. Klassiker sind hier URLs (Servernamen) in Selenium-Tests oder Login-Informationen für die Datenbank. Diese unterscheiden sich fast immer auf z.B. den Entwicklermachinen und der CI-Umgebung und müssen daher “irgendwie” als Parameter an die Tests (genaugenommen an die entsprechenden Keywords) übergeben werden. Dies geht beim Robot Framework über die Kommandozeile mittels “–variable NAME:VALUE”, was bei mehr als zwei Variablen allerdings schon sehr unübersichtlich und damit auch schwer wartbar wird.

Ok, also habe ich mich schon länger gefragt, warum man da nicht einfach eine Datei mit den Variablendefinitionen übergeben kann und dabei immer munter diese Stelle in der Dokumentation des Robot Frameworks überlesen. Das ist schon eine reife Leistung, da hier ja von Variable Files gesprochen wird. Vermutlich habe ich mich durch die Nennung von Python an dieser Stelle “abschrecken” lassen ;-). Aber letzten Endes ist dies genau das was man braucht, denn – Python hin oder her – sehen diese Variable-Files wie reine Property-Dateien aus, lediglich mit der Endung “.py”. Diese können dann einfach mittels “–variablefile <path>” in die entsprechenden Startup-Skripte eingebunden werden. Damit hat man dann also saubere Paare aus Startup-Skripten und entsprechenden Settings-Dateien für die verschiedenen Umgebungen.

Ist auf jeden Fall super, wenn man genau das Feature findet, das man schon immer vermisst hat und das ganz ohne eine neue Version des Tools … wie heisst es so schön in der Werbung: Sich einfach mal selber überraschen – unbezahlbar :-)!

Frohe Ostern!

  • Facebook
  • Delicious
  • Digg
  • StumbleUpon
  • Reddit
  • Blogger
  • LinkedIn
Thomas Jaspers

3 Antworten auf Robot Framework – Feature gefunden :-)

  1. You should have submitted a feature request about this. Would have been easy to implement. =)

    Variable files are also really powerful because they allow creating variables dynamically. You could, for example, get data from a database or from external text files.

  2. Martin Taylor sagt:

    If you really want to avoid Python, but still put your variables in files, you could use the –argumentfile command line option. Then in the referenced plain text argumentfile you could put a series of lines like:
    –variable NAME:VALUE
    But I agree with Peke that the real power is in dynamically created variables via Python variable files.

  3. @Martin: That is also a good hint, I was – obviously – not aware of this one, but I have no problem with Python in the variable files, as they really look like plain Property-Files unless you would do some “Python-Magic” in there.

    @Pekka: If I would have submitted a feature request you would have pointed me to this one with speed of light for sure … no idea why I never posted this question in the forum anyway. And the possibility to use Python in the variable files to assign the values is indeed powerful, but I think I will avoid this if I can not only because of my poor programming skills in Python, but this would be also a bit too much magic potentially ;).

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>