|
Lx-Office Testumgebung
|
|
|
|
Mit der hier beschriebenen Testumgebung ist es m?glich, Lx Office
|
|
automatisiert zu testen. Automatische Tests haben den gro?en
|
|
Vorteil, das verschiedene Standardtests nicht immer wieder von
|
|
Hand durchgespielt werden m?ssen, sondern einmal in einem Skript
|
|
verschriftet immer wieder verwendet werden k?nnen.
|
|
Weitere Informationen k?nnen im Wiki nachgelesen und erg?nzt werden:
|
|
http://wiki.lx-system.de/index.php/Automatisiertes_Testen_von_Modulen
|
|
|
|
|
|
|
|
Aufbau der Testumgebung
|
|
Im Verzeichnis t/ finden sich alle testrelevanten Skripte.Der
|
|
Aufruf der Tests folgt ?ber
|
|
#perl t/lx-office.t
|
|
|
|
lx-office.t ruft alle Einzeltests der Reihe nach auf und fasst sie
|
|
?bersichtlich zusammen. Die Einzeltests befinden sich in einem
|
|
Unterordner von t/. Jeder Unterorder enth?lt eine Datei AllTests.t,
|
|
die wiederrum alle einzelnen Tests des Unterordners aufruft.
|
|
|
|
|
|
|
|
t/lxtest.conf t/lxtest.conf.default
|
|
F?r die einzelnen Tests werden verschiedene Packetvariablen (globals)
|
|
zur Verf?gung gestellt, um die Testskripte einfach auf
|
|
unterschiedliche Installationen anpassen zu k?nnen und um sich auf
|
|
die selbe Test-Datenbank und denselben Test-Benutzer beziehen zu k?nnen.
|
|
|
|
Die Datei t/lxtest.conf.default muss zun?chst nach t/lxtest.conf
|
|
kopiert werden. Dann ist die Datei t/lxtest.conf auf die lokalen
|
|
Gegebenheiten anzupassen. Besnders die f?r Selenium n?tigen
|
|
Einstellungen bed?rfen einer ?berarbeitung.
|
|
|
|
Definiert werden die Variablen in der Datei t/lxtest.conf.
|
|
Aufgerufen werden die Variablen $lxtest->{VARIABLE}.
|
|
Es ist ratsam, die vorhandenen Tests zu untersuchen, um sich ein Bild
|
|
von den M?glichkeiten zu machen.
|
|
|
|
|
|
|
|
Selenium
|
|
Selenium ist eine Testsuite, mit der man Browserinteraktionen
|
|
simulieren und die Ergebnisse auswerten kann. Der unschlagbare
|
|
Vorteil von Selenium f?r das Testen von Lx ist es, dass es
|
|
m?glich wird, eine Test-Datenbank in einfachen Schritten
|
|
erstellen zu k?nnen. Um Seleniumtests durchf?hren zu k?nnen,
|
|
ist es n?tig, das Packet Selenium Remote Control (Selenium RC)
|
|
lokal zu installieren (Java Runtime ebenfalls erforderlich).
|
|
Selenium RC gibt es unter:
|
|
http://www.openqa.org/selenium-rc/
|
|
|
|
F?r den Betrieb von Selenium ist eine lokale Workstation mit
|
|
Browserumgebung n?tig.
|
|
|
|
Der Aufruf von selenium erfolgt unter Windows bspw. so:
|
|
C:\java -jar "C:\selenium-remote-control-0.9.0
|
|
\server\selenium-server.jar"
|
|
|
|
Unter Linux bspw. so:
|
|
<FIXME>
|
|
|
|
Die lokalen Einstellungen sind unbedingt in der
|
|
t/lxtest.conf nachzutragen! Weitere Infos unter
|
|
http://www.openqa.org/selenium-rc/
|
|
|
|
Dann reicht ein Start von
|
|
#perl t/lx-office.t
|
|
um dem Testskript bei der Arbeit zuzuschauen.
|
|
|
|
Leider ist es n?tig, auf dem Seleniumserver nach jedem Aufruf
|
|
des Testskripts das Sicherheitszertifikat von LINET Services zu
|
|
akzeptieren, was etwas nervig ist.
|
|
|
|
|
|
t/selenium/
|
|
Der Ordner selenium beinhaltet alle einzelnen selenium Testskripte.
|
|
Aufgerufen werden die Skripte ?ber t/selenium/AllTests.t .
|
|
Neue Tests m?ssen in dieser Datei angemeldet werden.
|
|
Ziel ist es eine Demodatenbank von Lx mit Daten zu f?llen und die
|
|
Abh?ngigkeiten untereinander zu pr?fen. Dazu sind die
|
|
individuellen Testskripte nummeriert (001NAME.t bis 999NAME.t) um
|
|
sie der Reihe nach abzuarbeiten.
|
|
|
|
Die folgenden Skripte sind bereits installiert:
|
|
|
|
001CreateTestDatabase.t Erzeugt eine neue Testdatenbank
|
|
002CreateTestUser.t Erzeugt einen neuen Testbenutzer
|
|
...
|
|
...
|
|
998DeleteTestUser.t L?scht den Testbenutzer
|
|
999DeleteTestDatabase.t L?scht die Testdatenbank
|
|
|
|
Dazwischen befinden sich die Skripte, um eine Demodatenbank
|
|
aufzubauen und zu pr?fen.
|
|
|
|
|
|
|
|
t/backend/
|
|
In diesem Ordner befinden sich Backend Testskripte.
|
|
|
|
|
|
|
|
t/frontend/
|
|
In diesem Ordner befinden sich Frontend Testskripte, die nicht
|
|
unter selenium getestet werden.
|
|
|
|
|
|
|
|
Was wenn ein Test fehlschl?gt?
|
|
Das Fehlschlagen von Tests kann verschiedene Gr?nde haben.
|
|
1. Der Test selbst ist fehlerhaft.
|
|
2. Es haben sich Lx Screens ver?ndert, so das der Test von
|
|
falschen Voraussetzungen ausgeht
|
|
3. Die zu testende Funktion ist fehlerhaft
|
|
|
|
Nachdem 1. und 2. ausgeschlossen wurden, sollte zu 3. ein Bugreport
|
|
angelegt werden.
|
|
Bugreports unter https://lx-office.linet-services.de/bugzilla/
|
|
anlegen.
|
|
|
|
|
|
|
|
Eigene Tests
|
|
Eigene testskripte k?nnen einfach in die Testumgebung eingebunden
|
|
werden. Die vorhandenen Skripte k?nnen als Anleitung dienen.
|
|
Bei Selenium Tests ist es am leichtesten, mit Firefox und der
|
|
Selenium IDE Extension Testpfade einfach aufzuzeichnen.
|
|
( http://www.openqa.org/selenium-ide/ )
|
|
Dann werden die Selenium IDE Testaufzeichnungen in Perl
|
|
umgewandelt und angepasst. Fertige Skripte werden mit einer
|
|
laufenden Nummer versehen und in den Ordner t/selenium/ kopiert.
|
|
Dann wird das Skript in der Datei t/selenium/AllTests.t eingef?gt.
|
|
Ein erster Probelauf mit
|
|
#perl t/selenium/AllTests.t sollte den Test absolvieren.
|
|
(Dabei kann es n?tig sein, andere Tests auszukommentieren, weil
|
|
selenium Tests mitunter lange Laufzeiten haben k?nnen, oder weil die Demodatenbank
|
|
und der Benutzer am Ende zu Debugging Zwecken nicht gel?scht werden
|
|
sollen.)
|
|
|
|
|