kivitendo/t/README.de @ 182b9827
4c2d836d | Udo Spallek | 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.)
|
|||