Blogbeitrag: Akzeptanztests für Onlineshops mit Codeception

Akzeptanztests für Onlineshops mit Codeception

Akzeptanztests sind im E-Commerce für optimale User Experience unabdingbar. Doch das wiederholte Testen bestimmter Szenarien, sogenannter User Stories, von Hand im Browser ist auf die Dauer mit enormem Aufwand verbunden. Mit dem Testing-Framework Codeception lassen sich wiederkehrende Abläufe im Nutzerverhalten auf der Website jedoch vollständig automatisieren, wobei die Testergebnisse auch für Laien nachvollziehbar aufbereitet werden. Am Beispiel der Entwicklung von Onlineshops erklären wir, wie automatisierte Acceptance Tests für das Shop-Frontend mit Codeception funktionieren.

Akzeptanztests für Onlineshops

In Akzeptanztests, beziehungsweise User Acceptance Tests (UAT), werden gewöhnliche Abläufe aus der Interaktion von Nutzern mit einem Web-Frontend, also zum Beispiel der Oberfläche eines Onlineshops, durchgetestet: eine Seite aufrufen, ein Formular ausfüllen und absenden, die Suchfunktion verwenden, eine Produktseite aufrufen, ein Produkt in den Warenkorb legen, zur Kasse gehen und so weiter.

User Stories im E-Commerce

Durch die Verkettung von zu testenden Nutzeraktionen zu realistischen Szenarien, sogenannten User Stories, lassen sich komplexe Testfälle definieren, in denen mögliches Verhalten von Nutzern auf der Website abgebildet wird. Dabei geht es darum, zu überprüfen, ob die Shopoberfläche in der Interaktion erwartungsgemäß funktioniert, ob sie also auf bestimmte Aktionen reagiert, wie erwartet: Wenn die Suchfunktion benutzt wird, erscheint ein passendes Suchergebnis, wenn ein Produkt in den Warenkorb gelegt worden ist, wird es daraufhin beim Aufruf der Warenkorb-Seite angezeigt – und vieles mehr.

Automatisiertes Acceptance Testing

Solche Tests von Hand im Browser durchzuführen, ist zwar denkbar einfach, aber ausgesprochen zeitaufwendig – gerade wenn in den unterschiedlichen Stadien der Entwicklung eines Onlineshops immer wieder die gleichen Abläufe getestet werden müssen. Aus diesem Grund wird das Acceptance Testing mithilfe spezieller Tools automatisiert. Bei der laufenden Entwicklung und der Erstellung neuer Online-Shops bietet das automatisierte Testen mit Codeception enorme Vorteile. Spielt man beispielsweise neue Programmierung in ein laufendes Projekt ein, können Fehler die an anderer Stelle entstehen. Lässt man alle Testszenarien mit Codeception automatisch testen erkennt man auch Fehler die durch manuelles Testing nicht aufgefallen werden.

Das Testing-Framework Codeception

Codeception ist ein leistungsfähiges und vielseitiges Open Source-Testing-Framework. Es basiert auf dem viel genutzten Testing-Framework PHPUnit und ermöglicht neben Unit-Tests auch Funktions- und Akzeptanztests für Web-Anwendungen wie Onlineshops. Der Ablauf eines Tests wird dabei jeweils einmalig vorgeschrieben und kann dann beliebig oft automatisiert aufgerufen werden. Auf diese Weise lassen sich unterschiedliche Anwendungsfälle, Szenarien und Perspektiven für die Nutzung des Shops testen, indem realistisches Nutzerverhalten simuliert wird. Damit lässt sich im Acceptance Testing mithilfe von Codeception eine reibungslose User Experience unter allen denkbaren Umständen sicherstellen.

Akzeptanztests mit Codeception für Magento in der Praxis

Da Codeception ein hervorragendes Open Source-Framework für umfangreiches Acceptance Testing ist und auf PHP basiert, setzen wir bereits seit Längerem auf diese Lösung. Wir testen mit Codeception zum Beispiel Shops auf der Grundlage von Magento 1 und Magento 2. Die Tests laufen dann begleitend zur Arbeit an einem bestimmten Shop auf dem entsprechenden Prelive-Entwicklungssystem, das möglichst nah am Live-Shop ist. Das hat den Vorteil, dass volle Testdurchläufe mit Bestellabschlüssen und anderem mehr unter realistischen Bedingungen möglich sind, ohne den Livebetrieb zu stören.

Codeception als definierter Standard

Codeception betreiben wir Docker-basiert in einem eigenen Container, wobei es an die Versionsverwaltung Git angebunden ist. Dabei haben wir Standardvarianten für Magento 1, Magento 2 beziehungsweise Shopware definiert, die als Grundlage für die unterschiedlichen Test-Setups für unterschiedliche Shops dienen. Da sie nicht auf dem im Shopsystem integrierten Testing-Framework basieren, sind die vordefinierten Tests daher zunächst vom jeweiligen Shop losgelöst und ermöglichen das unabhängige Testen von bestimmten und besonders wichtigen Funktionen. Unsere Tests werden ausschließlich in PHP geschrieben. Auf die Verwendung der Programmierungssprache Gherkin verzichten wir, da die Programmierung ohnehin in PHP erfolgt.

public function NewAccountTest(AcceptanceTester $I, \Page\Customer $account)
    {
        $I->amOnPage('/');
        $I->seeElement($account::$startLogin);
        $I->click($account::$startLogin);
        $I->waitForPageLoad();
        $I->seeElement($account::$startRegistration);
        $I->click($account::$startRegistration);
        $I->waitForPageLoad();
        $I->amOnPage($account::route('/create/'));
        $I->fillField($account::$firstnameField, $account::$firstnameValue);
        $I->fillField($account::$lastnameField, $account::$lastnameValue);
        $I->fillField($account::$emailaddressField, sqs("test").'@email.com');
        $I->fillField($account::$newpasswordField, $account::$newpasswordValue);
        $I->fillField($account::$pwdconfirmationField, $account::$newpasswordValue);
        $I->click($account::$createButton);
        $I->wait(10);
        $I->see('Mein Dashboard');
        $I->see('Danke für die Registrierung');
    }

Codeception kundenindividuell im Einsatz

Durch das Auslagern von Variablen in sogenannte Page-Objekte sind einfache Anpassungen für kundenindividuelle Shops ohne Eingriff in die eigentlichen Testabläufe unkompliziert möglich und es können auch je nach Shop zusätzliche Tests für spezifische Anforderungen hinzugefügt werden. Je nach aktuellem Bedarf lassen sich komplette Tests fahren oder nur Teilbereiche beziehungsweise ganz gezielt bestimmte Funktionen testen.

Übersicht der Codeception Tests

Codeception Report: Übersicht der ausgeführten Tests

New Account Report aus Codeception

Codeception Report: New Account Test

Tests in verschiedenen Browsern und Bildschirmauflösungen können über Optionsschalter beim Aufruf veranlasst werden. Die eigentlichen Testdurchläufe werden dann jede Nacht automatisiert gestartet, so dass die Ergebnisse am nächsten Tag fertig vorliegen. Die Testergebnisse der automatisierten Akzeptanztests können über die Konsole, im Browser, in Form von Screenshots oder über Erweiterungen für die Darstellung von Testergebnissen wie Allure ausgegeben werden.

Codeception Record vom New Account Test

Auswertungsscreenshot aus dem New Account Test

Allure hat sich vor allem bewährt, da die Ergebnisse über dieses Tool einfach verständlich und grafisch aufbereitet ausgegeben werden. So haben unsere Entwickler, Projektmanager und Support-Mitarbeiter jederzeit aktuelle Testergebnisse in der für ihre Arbeit am besten geeigneten Form zur Hand, was das Aufspüren von Fehlern enorm vereinfacht.

New Account Test Darstellung mit Allure

New Account Test: Darstellung mit Allure

Dieser Beitrag wurde am von Splendid Internet veröffentlicht/zuletzt bearbeitet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.