//

Dokumentation eigener Robot Framework Keyword-Bibliotheken

14.8.2011 | 2 Minuten Lesezeit

Momentan arbeite ich an der Einführung des Robot Framework für automatisierte Web-Tests bei einem unserer Kunden. Neben dem Robot Framework werden wir auch die SeleniumLibrary and RIDE einsetzen. Diese Tool-Sammlung wird allen Entwicklerteams im Unternehmen zur Verfügung gestellt werden.

Da unser Kunde ein eigenes Framework zur Entwicklung von Web-Applikationen einsetzt, entwickeln wir eine eigene Keyword-Bibliothek, die einerseits von Details des Frameworks abstrahiert und anderseits den Zugriff auf die SelenimLibrary kapselt (um bei einem potentiellen Austausch nicht alle Testfälle in allen Teams ändern zu müssen). Diese Keyword-Bibliothek wird als Robot Resource-Datei von allen Entwicklerteams in ihren Tests eingebunden. Daher ist eine gute Dokumentation notwendig.

Nehmen wir an, ein Keyword Starte Anwendung wäre wie folgt definiert und dokumentiert:

Die Dokumentation unterstützt den Entwickler nicht nur beim Arbeiten mit der RIDE …

… sie wird auch verwendet, um eine HTML-Seite mit der allen Keywords zu generieren, etwa so wie die BuiltIn Dokumentation.

Das Library Documentation Tool libdoc

Das Library Documentation Tool erledigt die Arbeit für uns. Für Java-Entwickler, die nicht allzu sehr mit Robot und Python vertraut sind: libdoc.py kann in etwa mit JavaDoc verglichen werden. Die Benutzung ist einfach:

1python libdoc.py YourKeywordlib.html
2

Details zum Aufruf findet man in der libdoc Dokumentation. Die Syntax der Dokmentation (Formatierung, Tabellen, etc.) wird im User Guide des Robot Frameworks beschrieben.

Build Integration

Der Build-Prozess des Kunden basiert auf ant. Daher habe ich für die Erzeugung der Dokumentation einen ant-Task geschrieben, dessen Details ich im Folgenden erläutern möchte. Zuerst schreiben wir ein Macro zum Aufruf von Python:

1<property name="python.runtime" value="/dev/Python27/python.exe" />
2...
3<macrodef name="run-python">
4   <attribute name="script"/>
5   <attribute name="arguments"/>
6      <sequential>
7         <echo>--------------------------------------------------
8Python   : ${python.runtime}
9Script   : @{script}
10Arguments: @{arguments}
11--------------------------------------------------</echo>
12         <exec executable="${python.runtime}" failonerror="true">
13            <arg value="@{script}" />
14            <arg line="@{arguments}"/>
15      </exec>
16   </sequential>
17</macrodef>
18

Um den ant-Task wiederverwendbar zu halten, verwenden wir folgende Properties, die ggfs. beim Aufruf überschrieben werden können:

1<!-- folder to store documentation into -->
2<property name="doc.folder" value="./doc"/>
3<!-- keywords to document -->
4<property name="doc.keywords" value="CustomKeywordLib.html"/>
5<!-- path to libdoc tool -->
6<property name="python.libdoc" value="../python/libdoc-2.5.7.py" />
7

Der Task selbst gestaltet sich dann sehr einfach:

1<target name="generate-keyword-documentation">
2   <mkdir dir="${doc.folder}"/>
3   <run-python
4      script="${python.libdoc}"
5      arguments="-f HTML -o ${doc.folder}/${doc.keywords} ${doc.keywords}"
6   />		
7</target>
8

Seine Ausführung …

1Buildfile: C:\dev\workspaces\blog\robotdoc\src\robot\robot-build.xml
2generate-keyword-documentation:
3     [echo] --------------------------------------------------
4     [echo] Python   : /dev/Python27/python.exe
5     [echo] Script   : ../python/libdoc-2.5.7.py
6     [echo] Arguments: -f HTML -o ./doc/CustomKeywordLib.html CustomKeywordLib.html
7     [echo] --------------------------------------------------
8     [exec] CustomKeywordLib -> C:\dev\workspaces\blog\robotdoc\src\robot\doc\CustomKeywordLib.html
9BUILD SUCCESSFUL
10Total time: 2 seconds
11

… erzeugt die gewünschte aggregierte Sicht auf alle Keywords in Form einer HTML-Datei:

Beitrag teilen

Gefällt mir

0

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen

Wir helfen Deinem Unternehmen

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.