Zum Newsletter anmelden

Integrationsstests mit dem "Magento Test Automation Framework"

  Michael.Luehr     Jul 18, 2012

Testen von Anwendungen ist wichtig. Jedoch ist das manuelle Testen des Magento Front- und Backends eine zeitaufwändige und anstrengende Sache. Abhilfe bietet das "Magento Test Automation Framework."

Das "Magento Test Automation Framework" (MTAF) ist ein Framework, um Integrationstests auszuführen bzw. das Erstellen selbiger zu erleichtern. Es setzt auf Selenium auf, d.h. es steuert einen Web-Browser, simuliert Nutzereingaben und vergleicht das Ergebnis mit vorher festgelegten Werten.

Voraussetzungen

Bevor es an die Installation des Frameworks geht, werden an dieser Stelle die Dinge aufgezählt, die in jedem Fall benötigt werden.

Für den Server:

  • Webserver mit PHP
  • MySQL-Datenbank
  • Pear
  • PHPUnit
  • Git
  • Java SDK
  • Selenium Server
  • Magento-Installation
  • Magento Testing Automation Framework

Für den Client:

  • Java SDK
  • Selenium
  • Web-Browser

Installation

Die Installation der o.g. Software kann bequem per Paketmanager vorgenommen werden. Zusätzlich werden von PHPUnit noch folgende Komponenten benötigt, PHPUnit_Selenium und PHPUnit_DbUnit, welche man einfach mit PEAR nachinstalliert. Anschließend kann das MTAF installiert werden, dazu einfach mit git clone https://github.com/magento/taf.git.

Bevor man seine eigene Konfiguration anpasst, sollte /config/config.yml in local.yml kopiert werden, da ansonsten lokale Änderungen überschrieben werden könnten. In der local.yml wird zusätzlich noch der Default-Browser hinterlegt sowie die URLs zum Magento Back- bzw. Frontend.

Bereits vorhandene Tests

Nun kann's auch schon losgehen: den Selenium Server starten und die Testsuite mit ./runtests.sh bzw. laufen lassen. Da die bereits mitgelieferten Tests sehr umfangreich sind (ca. 1.100 Tests und ca. 43.000 Assertions), dauert es etwas, bis die komplette Testsuite durchgelaufen ist. Hauptsächlich wird durch das MTAF das Magento-Backend geprüft. Der folgende Screenshot zeigt das Framework in Aktion.

Aufbau der Tests

Die Tests benutzen UIMaps, zu finden im Ordner /UIMaps, und DataSets, zu finden im Ordner /data.

UIMaps dienen dazu, die Oberflächenelemente mit Lokalisierungsmaßnahmen (z.B. xpath) zu addressieren und diesen an einer zentralen Stelle zu speichern. Der dabei verwendete Bezeichner ist applikationsweit gültig und kann daher nur einmal pro UIMap vergeben werden. Der Vorteil von UIMaps liegt im recht niedrigen Anpassungsaufwand, falls sich die Struktur der Seite mal ändern sollte.

Als DataSets bezeichnet man vordefinierte Daten, die von den Tests in die Oberfläche eingetragen werden. Die Tests selbst werden als normale PHPUnit-Tests geschrieben, wobei MTAF die Testbedingungen um oberflächenspezifsche Befehle, wie z.B. buttonIsPresent, erweitert.

Schreiben eigener Tests

Das Erstellen eigener Tests läuft wie folgt ab:

Zunächst erstellt man sich eine eigene UIMap, dabei kann man sich an den bereits vorhandenen orientieren bzw. nutzt die Vorlage in der Dokumentation. Der Knoten 'mca' bezeichnet dabei den URL-Pfad zur Seite ohne die Base-URL. Die eigentliche UIMap enthält dann die Elemente der Seite, wie. z.b. Forms, Buttons, Fieldsets usw.

Als nächstes legt man in den DataSets fest, mit welchen Daten die Oberfläche befüllt werden soll. Die Verbindung zwischen den Daten und der UIMap erfolgt im eigentlichen Test. Dieser kann kann noch eine Reihe von Vorbedingungen prüfen, wie z.B. das Einloggen in den Adminbereich. Zu guter Letzt werden die Überprüfungen vorgenommen und falls gewünscht, die Ergebnisse, unter Verwendung der von PHPUnit angebotenen Möglichkeiten, dokumentiert.

Fazit

MTAF bietet bereits eine Vielzahl von mitgelieferten Tests, die natürlich nur die Grundfunktionalität von Magento abdecken. Sofern eigene Erweiterungen ins Spiel kommen, lohnt sich der Einsatz vor allem dann, wenn die Erweiterungen hinreichend stabil bezüglich der Oberfläche sind und der Aufwand für die Erstellung der Oberflächentests im Vergleich zum eigentlichen Entwicklungsaufwand nicht zu hoch ist.

Tags  Magento

Kategorien:

alle ansehen

Zum Newsletter anmelden