SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Testen mit Arquillian
Was? Wann? Wie?
Thilo Käsemann
Zu mir
• „Professioneller“ Entwickler seit Mitte 2012
• Java
• OSGi
• Gatling LoadTesting
• Java EE
https://twitter.com/TKaesemann
https://github.com/ThiloKaese
Arquillian, Was ist das?
Arquillian, eine mächtige Testsuite
JBOSS Arquillian, eine mächtige Testsuite
Arquillian, eine mächtige Testsuite
• Fokus auf die oberen beiden Teile des Testdreiecks (ITest und SysTest)
• Erstellt komplette deployments
• Auch für MicroProfile interessant
• Für ITest zu lahm, da es eine ganzen ApplServer startet
• Test können mit bekannten Testing tools (JUnit + Hamcrest, AssertJ,
Spock)
• Viele Erweiterungen (Modules)
Arquillian strahlt bei alten (EJB2, ...)
Anwendungen und Systemtests
• EJB2 gibt es afaik keine Standalone Test Lösung
• Systemtests
• Macht der ApplServer was ich ihm gesagt habe oder ist da doch eine obskur
patched Lib dabei
• Kombination z.B. mit Testcontainers, Flyway/Liquibase
• Selenium Unterstützung mittels Arquillian-Drone
Bei "neueren" Anwendungen sollte es nicht
so exzessiv verwendet werden
• Integrationstests  Bootstrappen!
• EJB3 -> OpenEJB
• JPA -> Hibernate/EclipseLink
• ...
• Systemtests: Arquillian
• Sicherheit für Libs und Konfig (ggf auch beim Kunden)
• Embedded - Lokale Container mit Lifecycle
• Managed - Remote Container mit Lifecycle
• Remote – Remote Container mit JMX Anbindung o.ä.
Was kann Arquillian noch?
• EJB und CDI Unterstützung
• Drone und Graphene mit WebDriver Unterstüztung
• Mehrere Deployments in angegebener Reihenfolge
• Tests können einem Deployment zugeordnet werden
Shrinkwarp als „Herz“ von Arquillian
Testen mit Arquillian
Was? Wann? Wie?
Fragen?

Weitere ähnliche Inhalte

Ähnlich wie Testen mit Arquillian

Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Seleniumx-celerate
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit ArquillianMatthias Reining
 
Mögen die Tests mit dir sein
Mögen die Tests mit dir seinMögen die Tests mit dir sein
Mögen die Tests mit dir seincodepitbull
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTddjlink
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
 
Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Oliver Klee
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
Auszug Seminarmaterial "EJB 3.x"
Auszug Seminarmaterial "EJB 3.x"Auszug Seminarmaterial "EJB 3.x"
Auszug Seminarmaterial "EJB 3.x"schellsoft
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!gedoplan
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10inovex GmbH
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit RexJan Gehring
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rexinovex GmbH
 

Ähnlich wie Testen mit Arquillian (16)

Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
Robustes Testen mit Selenium
Robustes Testen mit SeleniumRobustes Testen mit Selenium
Robustes Testen mit Selenium
 
2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian2012-10-12 Testen mit Arquillian
2012-10-12 Testen mit Arquillian
 
Mögen die Tests mit dir sein
Mögen die Tests mit dir seinMögen die Tests mit dir sein
Mögen die Tests mit dir sein
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Test-driven Development mit TYPO3
Test-driven Development mit TYPO3
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Auszug Seminarmaterial "EJB 3.x"
Auszug Seminarmaterial "EJB 3.x"Auszug Seminarmaterial "EJB 3.x"
Auszug Seminarmaterial "EJB 3.x"
 
Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!Testen im EE-Umfeld – Seien Sie feige!
Testen im EE-Umfeld – Seien Sie feige!
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
eEvolution 8.1 - Tipps & Tricks - Teil 1
eEvolution 8.1 - Tipps & Tricks - Teil 1eEvolution 8.1 - Tipps & Tricks - Teil 1
eEvolution 8.1 - Tipps & Tricks - Teil 1
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Von Test nach Live mit Rex
Von Test nach Live mit RexVon Test nach Live mit Rex
Von Test nach Live mit Rex
 
Von Test nach live mit Rex
Von Test nach live mit RexVon Test nach live mit Rex
Von Test nach live mit Rex
 

Testen mit Arquillian

  • 1. Testen mit Arquillian Was? Wann? Wie? Thilo Käsemann
  • 2. Zu mir • „Professioneller“ Entwickler seit Mitte 2012 • Java • OSGi • Gatling LoadTesting • Java EE https://twitter.com/TKaesemann https://github.com/ThiloKaese
  • 5. JBOSS Arquillian, eine mächtige Testsuite
  • 6. Arquillian, eine mächtige Testsuite • Fokus auf die oberen beiden Teile des Testdreiecks (ITest und SysTest) • Erstellt komplette deployments • Auch für MicroProfile interessant • Für ITest zu lahm, da es eine ganzen ApplServer startet • Test können mit bekannten Testing tools (JUnit + Hamcrest, AssertJ, Spock) • Viele Erweiterungen (Modules)
  • 7. Arquillian strahlt bei alten (EJB2, ...) Anwendungen und Systemtests • EJB2 gibt es afaik keine Standalone Test Lösung • Systemtests • Macht der ApplServer was ich ihm gesagt habe oder ist da doch eine obskur patched Lib dabei • Kombination z.B. mit Testcontainers, Flyway/Liquibase • Selenium Unterstützung mittels Arquillian-Drone
  • 8. Bei "neueren" Anwendungen sollte es nicht so exzessiv verwendet werden • Integrationstests  Bootstrappen! • EJB3 -> OpenEJB • JPA -> Hibernate/EclipseLink • ... • Systemtests: Arquillian • Sicherheit für Libs und Konfig (ggf auch beim Kunden) • Embedded - Lokale Container mit Lifecycle • Managed - Remote Container mit Lifecycle • Remote – Remote Container mit JMX Anbindung o.ä.
  • 9. Was kann Arquillian noch? • EJB und CDI Unterstützung • Drone und Graphene mit WebDriver Unterstüztung • Mehrere Deployments in angegebener Reihenfolge • Tests können einem Deployment zugeordnet werden
  • 10. Shrinkwarp als „Herz“ von Arquillian
  • 11. Testen mit Arquillian Was? Wann? Wie? Fragen?

Hinweis der Redaktion

  1. „Thema“ Alien, aber nicht wie OpenLiberty von IBM, sondern von JBOSS/RedHat In meinem Umfeld konnte niemand so richtig damit was anfangen. So ein mystisches Ding, was jeder mal gehört hat, aber nix mit Anfangen kann
  2. Testpyramide  Unittests, Integrationstests, Systemtests
  3. Arquillian von JBOSS/Redhat Testpyramide  Unittests, Integrationstests, Systemtests/UI Tests
  4. Fokus auf ITest und SystemTest -Erstellt Deployments -MP, wenn irgendein Appserver benutzt wird (vgl boot times bei adam bien), --ggf auch Aquillian Algeron für Contract verifcation --vgl Karaf tests, dauert ganz schön um für jeden IT nen Container zu starten -jeden separat weil Seiteneffektfrei! Module: Contract Testing, Smart-Testing, Performance, Spring, Angular …. Smart-Testing: analysiere Ändeurngen und Optimiere die Tests Unterstützung von Jboss Forge, falls das jemand möchte
  5. EJB2 (sofern noch verwendet) Systemtests MP, wenn irgendein Appserver benutzt wird (vgl boot times bei adam bien) ggf auch Aquillian Algeron für Contract verifcation Leider auch die Unterstützung zumindest bei IntelliJ ist begrenzt…
  6. Für Itests eher eine separate Implementierung verwenden und Bootstrappen, weil schneller! (Adam Bien, Sebastian Daschner, …) Für Systemtests hilft es beim Setup und stellt eher den AppServer da mit gepatcheten Libs, Seltsamer Konfiguration, … -Embedded --Lokale container -Managed: -- Entweder Arquillian Container für jeweilligen Appserver - Remote: -- separat über maven plugin z.b. maven-wildfly-plugin instanz starten und nach dem Test wieder säubern ArquillianCube https://github.com/arquillian/arquillian-cube versuch für das Container-Zeitalter, aber scheint eher noch niedrigere Prio zu haben
  7. Mächtiges Rückgrat von Arquillian ist Shrinkwrap! - Komplettes Deployment „einfach“ per Code erstellen und dabei Maven Dependencies nutzen bzw filtern Mögliche Archive - EAR, WAR, JAR EAR - Wie „gewohnt“ Unterscheidung Modul oder Lib Arquillian.xml - „Steuert“ die Container config (remote/managed/ports/…)