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