Testing in TYPO3 mit
Behat und Dalek.js
Wer sind wir
Sebastian Helzle

Neos, 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/

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

  • 1.
    Testing in TYPO3mit Behat und Dalek.js
  • 2.
    Wer sind wir SebastianHelzle
 Neos, TYPO3, Freelancer, JS, Scrum @sebobo Benedikt Kastl Frontendler, JS, OpenDeviceLab @bkastl
  • 3.
    Um was gehtes • 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
  • 4.
    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
  • 5.
    Fixtures • Beispiele: • BasisDatenbankdump für TYPO3 • Benutzerkonten • Kleinere Testdatensätze
  • 6.
    Selenium, Webdriver • Testsuitefü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
  • 7.
  • 8.
    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)
  • 9.
    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
  • 10.
    Monitoring / Smoketests •Funktioniert das Produktivsystem auch aus Usersicht • Funktioniert das System nach einem Deployment
  • 11.
  • 12.
    Dalek.js • Automatische Browsertestsauf Basis von node.js • Benötigt kein Selenium Server • Läuft standardmäßig mit Phantomjs
  • 13.
    Fallstricke • Selenium nichtimmer 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
  • 14.
    Links • http://dalekjs.com/ • http://phantomjs.org/ •https://github.com/Behat • http://mink.behat.org/en/latest/ • http://www.seleniumhq.org/