Projekt

Allgemein

Profil

Herunterladen (4,91 KB) Statistiken
| Zweig: | Markierung: | Revision:
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.)


(3-3/5)