Handbuch
Version 8.0.2 |
6.0+Preview Die Robot Framework Integration ist zwar bereits voll funktionsfähig, befindet sich aber noch im Preview-Stadium, da es noch keine vorgefertigten Robot Framework Keyword-Bibliotheken für QF-Test gibt, so dass Sie ihre eigenen erstellen müssen (was, wie unten beschrieben, sehr einfach geht).
Robot Framework ist ein sehr beliebtes Framework zur Testautomatisierung und robotergesteuerten Prozessautomatisierung (Robotic Process Automation - RPA). Es basiert auf Python und kommt mit einer Vielzahl an gebrauchsfertigen Bibliotheken für diverse Testszenarien. Meist wird die Entscheidung zwischen entweder QF-Test oder Robot Framework fallen, aber es gibt Situationen für welche die Integration absolut Sinn ergibt: Wenn Sie einerseits bereits existierende Infrastruktur für Robot Framework haben oder Tester in Ihrem Team über Spezialwissen zu Robot Framework verfügen und andererseits die besonderen Fähigkeiten von QF-Test in der UI-Automatisierung benötigen.
Es muss eine aktuelle Version von Python 3 installiert sein.
Falls noch nicht vorhanden, kann Robot Framework via pip install robotframework
installiert werden. Es wird
Robot Framework Version 4 oder höher benötigt.
Die Integration benötigt eine Brücke zwischen Python und Java. JPype erfüllt diese Rolle ausgezeichnet. Es muss via pip
install JPype1
installiert werden.
QF-Test enthält eine Robot Framework Bibliothek namens qftest
, die Robot Framework bekannt gemacht werden muss. Sie befindet
sich im Verzeichnis .../qftest-8.0.2/ext/robotframework
. Sie können entweder dieses
Verzeichnis zu Ihrer PYTHONPATH Environment Variable hinzufügen, oder eine Datei namens
qftest_robot.pth
in den site-packages Ihrer Python 3 Installation anlegen - also
.../python3/Lib/site-packages/qftest_robot.pth
- die genau eine Zeile enthält: Den vollständigen
Pfad zu diesem Verzeichnis.
Robot Framework kommuniziert mit dem QF-Test Daemon, daher müssen Sie zunächst QF-Test, wie in Kapitel 54 beschrieben, mit aktiviertem Daemon-Modus starten. Zum Erstellen von Tests ist es ideal, den interaktiven Daemon-Modus zu nutzen, da Sie dann den QF-Test Debugger aktiveren und dazu nutzen können, auf der Ebene von QF-Test in Einzelschritten durch Ihre Keywords zu gehen, unabhängig von und in Ergänzung zu dem Debugger der IDE, mit der Sie Ihre Robot Framework Skripte ausführen. Starten Sie also bitte QF-Test von der Kommandozeile mit
qftest -daemon -daemonport 5454 -keystore=
Port 5454 ist nur ein Beispiel, Sie können diesen beliebig wählen, müssen ihn aber, wie unten beschrieben, in Ihrer robot Datei angeben.
Wie beim Kommandozeilenargument -keystore <Keystore-Datei>
beschrieben, dient -keystore=
dazu, den Daemon
ohne abgesicherte Kommunikation zu starten, was den Verbindungsaufbau beschleunigt und für den internen
Gebrauch auf Ihrer Maschine akzeptabel sein sollte. Das dritte Argument der qftest Bibliothek muss in diesem
Fall "false" sein und "true", wenn ein Keystore genutzt wird.
Bevor Sie Ihre eigenen Robot Framework Tests mit QF-Test erstellen, sollten Sie zunächst das mit QF-Test bereitgestellte
Demo-Skript ausführen, um sicherzustellen, dass Ihre Umgebung vollständig eingerichtet ist. Es befindet sich
im Verzeichnis .../qftest-8.0.2/demo/robotframework
. Bitte wechseln Sie dorthin und
führen Sie folgenden Befehl aus:
robot carconfigSwing_de.robot
Dieses Skript sollte die Swing Carconfig Demo-Anwendung starten und darin ein paar Klicks und Checks durchführen. Wenn Sie dieses mehrfach ausführen sehen Sie einen weiteren großen Vorteil dieser Integration: Durch die Nutzung des QF-Test Daemon zum Start den Anwendung wird deren Lebensdauer unabhängig von der des Python Prozesses, der das Robot Framework Skript ausführt. Es können also weitere Skripte ausgeführt werden und die bereits laufende Anwendung nutzen - dank des QF-Test Konzepts von Abhängigkeiten (Abschnitt 41.3) trotzdem immer in einem definierten Zustand.
Preview
SmartIDs (vgl. Abschnitt 5.6) sind ideal zur Angabe der Zielkomponenten von Robot Framework Keywords
geeignet. Leider leitet das führende '#'-Zeichen von SmartIDs in Robot Framework einen Kommentar ein, so dass dieses
immer geschützt werden müsste, was die Lesbarkeit stark beeinträchtigt. Es gibt aber eine noch inoffizielle
Option in QF-Test, nach deren Aktivieren jede Referenz auf eine 'Bemerkung' auch ohne führendes '#' implizit als
SmartID behandelt wird, sofern kein 'Komponente' Knoten mit dieser ID existiert.
Bis diese Option offiziell verfügbar wird, kann Sie auf Skriptebene aktiviert werden, wie in der Prozedur "use
smartids without marker" der robot.qft
Demo-Testsuite gezeigt:
rc.setOption(Options.OPT_SMARTID_WITHOUT_MARKER, true)
Wie Sie der Datei resource.txt
im Robot Framework Demo-Verzeichnis entnehmen können, muss die
qftest
Bibliothek wie folgt initialisiert werden:
Library qftest localhost 5454 false ${SUITE}
Die Argumente sind optional. Die ersten drei legen Host und Port für den zu kontaktierenden QF-Test Daemon fest und
ob ein Keystore verwendet werden soll oder nicht. Das vierte hat den Standardwert robot.qft
und bezeichnet die primäre Testsuite zur Ermittlung der Keywords, die Robot Framework nutzen kann.
Die Keywords für Robot Framework werden ermittelt, indem die primäre Testsuite, die als Argument bei der Definition der Library angegeben wurde, zusammen mit allen direkt oder indirekt per include referenzierten Testsuiten durchgegangen wird.
Hierbei wird das @keyword Doctag genutzt, um eine 'Prozedur' oder eine ganze 'Package' Hierarchie als Keyword festzulegen. Details hierzu finden Sie in Abschnitt 61.2.
Letzte Änderung: 4.12.2024 Copyright © 1999-2024 Quality First Software GmbH |