3 Mit der hier beschriebenen Testumgebung ist es möglich, Lx Office
4 automatisiert zu testen. Automatische Tests haben den großen
5 Vorteil, das verschiedene Standardtests nicht immer wieder von
6 Hand durchgespielt werden müssen, sondern einmal in einem Skript
7 verschriftet immer wieder verwendet werden können.
8 Weitere Informationen können im Wiki nachgelesen und ergänzt werden:
9 http://wiki.lx-system.de/index.php/Automatisiertes_Testen_von_Modulen
13 Aufbau der Testumgebung
14 Im Verzeichnis t/ finden sich alle testrelevanten Skripte.Der
15 Aufruf der Tests folgt über
18 lx-office.t ruft alle Einzeltests der Reihe nach auf und fasst sie
19 übersichtlich zusammen. Die Einzeltests befinden sich in einem
20 Unterordner von t/. Jeder Unterorder enthält eine Datei AllTests.t,
21 die wiederrum alle einzelnen Tests des Unterordners aufruft.
25 t/lxtest.conf t/lxtest.conf.default
26 Für die einzelnen Tests werden verschiedene Packetvariablen (globals)
27 zur Verfügung gestellt, um die Testskripte einfach auf
28 unterschiedliche Installationen anpassen zu können und um sich auf
29 die selbe Test-Datenbank und denselben Test-Benutzer beziehen zu können.
31 Die Datei t/lxtest.conf.default muss zunächst nach t/lxtest.conf
32 kopiert werden. Dann ist die Datei t/lxtest.conf auf die lokalen
33 Gegebenheiten anzupassen. Besnders die für Selenium nötigen
34 Einstellungen bedürfen einer Überarbeitung.
36 Definiert werden die Variablen in der Datei t/lxtest.conf.
37 Aufgerufen werden die Variablen $lxtest->{VARIABLE}.
38 Es ist ratsam, die vorhandenen Tests zu untersuchen, um sich ein Bild
39 von den Möglichkeiten zu machen.
44 Selenium ist eine Testsuite, mit der man Browserinteraktionen
45 simulieren und die Ergebnisse auswerten kann. Der unschlagbare
46 Vorteil von Selenium für das Testen von Lx ist es, dass es
47 möglich wird, eine Test-Datenbank in einfachen Schritten
48 erstellen zu können. Um Seleniumtests durchführen zu können,
49 ist es nötig, das Packet Selenium Remote Control (Selenium RC)
50 lokal zu installieren (Java Runtime ebenfalls erforderlich).
51 Selenium RC gibt es unter:
52 http://www.openqa.org/selenium-rc/
54 Für den Betrieb von Selenium ist eine lokale Workstation mit
55 Browserumgebung nötig.
57 Der Aufruf von selenium erfolgt unter Windows bspw. so:
58 C:\java -jar "C:\selenium-remote-control-0.9.0
59 \server\selenium-server.jar"
64 Die lokalen Einstellungen sind unbedingt in der
65 t/lxtest.conf nachzutragen! Weitere Infos unter
66 http://www.openqa.org/selenium-rc/
68 Dann reicht ein Start von
70 um dem Testskript bei der Arbeit zuzuschauen.
72 Leider ist es nötig, auf dem Seleniumserver nach jedem Aufruf
73 des Testskripts das Sicherheitszertifikat von LINET Services zu
74 akzeptieren, was etwas nervig ist.
78 Der Ordner selenium beinhaltet alle einzelnen selenium Testskripte.
79 Aufgerufen werden die Skripte über t/selenium/AllTests.t .
80 Neue Tests müssen in dieser Datei angemeldet werden.
81 Ziel ist es eine Demodatenbank von Lx mit Daten zu füllen und die
82 Abhängigkeiten untereinander zu prüfen. Dazu sind die
83 individuellen Testskripte nummeriert (001NAME.t bis 999NAME.t) um
84 sie der Reihe nach abzuarbeiten.
86 Die folgenden Skripte sind bereits installiert:
88 001CreateTestDatabase.t Erzeugt eine neue Testdatenbank
89 002CreateTestUser.t Erzeugt einen neuen Testbenutzer
92 998DeleteTestUser.t Löscht den Testbenutzer
93 999DeleteTestDatabase.t Löscht die Testdatenbank
95 Dazwischen befinden sich die Skripte, um eine Demodatenbank
96 aufzubauen und zu prüfen.
101 In diesem Ordner befinden sich Backend Testskripte.
106 In diesem Ordner befinden sich Frontend Testskripte, die nicht
107 unter selenium getestet werden.
111 Was wenn ein Test fehlschlägt?
112 Das Fehlschlagen von Tests kann verschiedene Gründe haben.
113 1. Der Test selbst ist fehlerhaft.
114 2. Es haben sich Lx Screens verändert, so das der Test von
115 falschen Voraussetzungen ausgeht
116 3. Die zu testende Funktion ist fehlerhaft
118 Nachdem 1. und 2. ausgeschlossen wurden, sollte zu 3. ein Bugreport
120 Bugreports unter https://lx-office.linet-services.de/bugzilla/
126 Eigene testskripte können einfach in die Testumgebung eingebunden
127 werden. Die vorhandenen Skripte können als Anleitung dienen.
128 Bei Selenium Tests ist es am leichtesten, mit Firefox und der
129 Selenium IDE Extension Testpfade einfach aufzuzeichnen.
130 ( http://www.openqa.org/selenium-ide/ )
131 Dann werden die Selenium IDE Testaufzeichnungen in Perl
132 umgewandelt und angepasst. Fertige Skripte werden mit einer
133 laufenden Nummer versehen und in den Ordner t/selenium/ kopiert.
134 Dann wird das Skript in der Datei t/selenium/AllTests.t eingefügt.
135 Ein erster Probelauf mit
136 #perl t/selenium/AllTests.t sollte den Test absolvieren.
137 (Dabei kann es nötig sein, andere Tests auszukommentieren, weil
138 selenium Tests mitunter lange Laufzeiten haben können, oder weil die Demodatenbank
139 und der Benutzer am Ende zu Debugging Zwecken nicht gelöscht werden