SlideShare ist ein Scribd-Unternehmen logo
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Regressionstests in Webprojekten
Regressionstests in WebprojektenRegressionstests in Webprojekten
Regressionstests in WebprojektenSebastian Bauer
 
Regressionstests in Webprojekten - IPC12SE
Regressionstests in Webprojekten - IPC12SERegressionstests in Webprojekten - IPC12SE
Regressionstests in Webprojekten - IPC12SESebastian Bauer
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtVerein FM Konferenz
 
zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013Andreas Jung
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungRalf Eggert
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerPatrick Baumgartner
 
WPML für mehrsprachige WordPress Websites verwenden
WPML für mehrsprachige WordPress Websites verwendenWPML für mehrsprachige WordPress Websites verwenden
WPML für mehrsprachige WordPress Websites verwendenmechdesign
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaAndreas Jung
 

Was ist angesagt? (9)

Regressionstests in Webprojekten
Regressionstests in WebprojektenRegressionstests in Webprojekten
Regressionstests in Webprojekten
 
Regressionstests in Webprojekten - IPC12SE
Regressionstests in Webprojekten - IPC12SERegressionstests in Webprojekten - IPC12SE
Regressionstests in Webprojekten - IPC12SE
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
 
zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013
 
Unit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 AnwendungUnit Testing einer Zend-Framework 2 Anwendung
Unit Testing einer Zend-Framework 2 Anwendung
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
WPML für mehrsprachige WordPress Websites verwenden
WPML für mehrsprachige WordPress Websites verwendenWPML für mehrsprachige WordPress Websites verwenden
WPML für mehrsprachige WordPress Websites verwenden
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 

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

Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10inovex GmbH
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsUlrich Schmidt
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeos890
 
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istDavid Schneider
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014WebcsonsultsEU
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit RexJan Gehring
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSBjörn Wilmsmann
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Seleniumx-celerate
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Nico Orschel
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 

Ähnlich wie Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js (20)

Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Flexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpikeFlexibilitaet mit CDI und Apache DeltaSpike
Flexibilitaet mit CDI und Apache DeltaSpike
 
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam istShareConf 2014: 10 Gründe warum der SharePoint langsam ist
ShareConf 2014: 10 Gründe warum der SharePoint langsam ist
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
IntelliJ für Flex
IntelliJ für FlexIntelliJ für Flex
IntelliJ für Flex
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Selenium
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 

Mehr von Sebastian Helzle

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Sebastian Helzle
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018Sebastian Helzle
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSebastian Helzle
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungSebastian Helzle
 
Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Sebastian Helzle
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in developmentSebastian Helzle
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in developmentSebastian Helzle
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMSSebastian Helzle
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 

Mehr von Sebastian Helzle (11)

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EU
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die Veränderung
 
Neos CMS and SEO
Neos CMS and SEONeos CMS and SEO
Neos CMS and SEO
 
Ci & proServer
Ci & proServerCi & proServer
Ci & proServer
 
Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)Tasty Recipes for Every Day 2016 (Neos)
Tasty Recipes for Every Day 2016 (Neos)
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in development
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in development
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMS
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 

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

  • 1. Testing in TYPO3 mit Behat und Dalek.js
  • 2. Wer sind wir Sebastian Helzle
 Neos, TYPO3, Freelancer, JS, Scrum @sebobo Benedikt Kastl Frontendler, JS, OpenDeviceLab @bkastl
  • 3. 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
  • 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: • Basis Datenbankdump für TYPO3 • Benutzerkonten • Kleinere Testdatensätze
  • 6. 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
  • 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
  • 12. Dalek.js • Automatische Browsertests auf Basis von node.js • Benötigt kein Selenium Server • Läuft standardmäßig mit Phantomjs
  • 13. 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
  • 14. Links • http://dalekjs.com/ • http://phantomjs.org/ • https://github.com/Behat • http://mink.behat.org/en/latest/ • http://www.seleniumhq.org/