Upload
sebastian-helzle
View
347
Download
0
Embed Size (px)
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/