Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js

Preview:

Citation preview

Testing in TYPO3 mit Behat und Dalek.js

Wer sind wir

Sebastian HelzleNeos, TYPO3, Freelancer, JS, Scrum @sebobo

Benedikt Kastl Frontendler, JS, OpenDeviceLab @bkastl

Um was geht es• Behat, Selenium, Mink, Gherkin, Fixtures

• Wie sieht ein einfacher Test aus

• Testen während der Entwicklung

• Automatisiertes Testen und manuelle Tests

• Monitoring / Smoketesting

• Testmaps für Kunden und QA

• Dalek.js

• Fallstricke

Behat, Gherkin, Mink• Behat

• Framework für behaviour driven development (bdd)

• Gherkin

• Tests in normaler Sprache schreiben

• Mink

• Library für Behat für User Acceptance Tests (UAT) im Browser

Fixtures

• Beispiele:

• Basis Datenbankdump für TYPO3

• Benutzerkonten

• Kleinere Testdatensätze

Selenium, Webdriver• Testsuite für automatische Browsertests

• Support für IE, FF, Chrome, phantomjs

• Benötigt laufenden Server

• Clients verbinden sich zum Server

• Unterstützt Testgrids zur Lastverteilung

• Webdriver erlaubt die Interaktion mit der Webseite

Beispiel

Testen beim Entwickeln

• Schnelle und langsame Tests

• Headless oder nicht, das ist hier die Frage

• phantomjs, slimerjs

• Code kommt nur auf Master, wenn der Test grün ist (und die anderen weiterhin grün sind)

Automatisiert und manuell

• Nicht jeder Test kann einfach automatisiert werden

• Manuelle Tests können mit der gleichen Sprache dokumentiert werden (Tagging)

• Je mehr automatisiert desto besser

• Wichtig für CI-Umgebung

Monitoring / Smoketests

• Funktioniert das Produktivsystem auch aus Usersicht

• Funktioniert das System nach einem Deployment

Testmaps

Dalek.js• Automatische Browsertests auf Basis von node.js

• Benötigt kein Selenium Server

• Läuft standardmäßig mit Phantomjs

Fallstricke• Selenium nicht immer stabil

• Webdriver verhält sich nicht immer wie ein echter User

• Tests können lange dauern

• phantomjs 1.x unterstützt keine Webfonts

• Echte Bugs nur auf echten Geräten

Links• http://dalekjs.com/

• http://phantomjs.org/

• https://github.com/Behat

• http://mink.behat.org/en/latest/

• http://www.seleniumhq.org/

Recommended