14
Testing in TYPO3 mit Behat und Dalek.js

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

Embed Size (px)

Citation preview

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

Testing in TYPO3 mit Behat und Dalek.js

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

Wer sind wir

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

Benedikt Kastl Frontendler, JS, OpenDeviceLab @bkastl

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

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

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

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

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

Fixtures

• Beispiele:

• Basis Datenbankdump für TYPO3

• Benutzerkonten

• Kleinere Testdatensätze

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

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

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

Beispiel

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

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)

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

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

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

Monitoring / Smoketests

• Funktioniert das Produktivsystem auch aus Usersicht

• Funktioniert das System nach einem Deployment

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

Testmaps

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

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

• Benötigt kein Selenium Server

• Läuft standardmäßig mit Phantomjs

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

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

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

Links• http://dalekjs.com/

• http://phantomjs.org/

• https://github.com/Behat

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

• http://www.seleniumhq.org/