Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Containerized End-2-End-Testing

Containerized End-2-End-Testing

Zur Online-Präsentation:
https://rawgit.com/toschneck/presentation/javaland-containerized-e2e-testing/index.html#/

Zum Example: Sakuli Example Bakery Testing
https://github.com/toschneck/sakuli-example-bakery-testing

In der Regel beschreibt der Begriff „End-2-End-Testing“ ein Testszenario, das Systeme in Form eines Black-Box-Tests von außen von einem Ende zum anderen Ende testet. Ziel des Vortrags ist es, dem Zuhörer einen Einblick zu geben wie durch geschickten Tool-Einsatz das Potenzial einer Container-Technologie wie z.B. Docker genutzt werden kann, um die Softwarequalität zu erhöhen und manuellen Testaufwand zu verringern.

Mithilfe des End-2-End-Testing-Framekworks „Sakuli“ ist es im Container möglich sowohl webbasierte Browsertests als auch GUI-Tests auf Rich-Clients durchzuführen. Typische Einsatzszenarien von „containerized End-2-End-Testing“ werden anhand einer Live-Demo betrachtet. Eine abschließende Bewertung der gesammelten Erfahrungen sowie ein Ausblick auf weitere Einsatzszenarien und Entwicklungsschritte runden den Vortrag ab.

Weitere Info's sind unter https://github.com/ConSol/sakuli zu finden.

toschneck

March 08, 2016
Tweet

More Decks by toschneck

Other Decks in Programming

Transcript

  1. Besonderheiten bei End­2­End Tests Unterschiedliche Testarten Regressionstests Funktionale Abnahmetests Parallele

    Tests mit GUIs sind schwierig Geteilte Testdaten: Login­User, User­Sessions mit Stati Cleanup von Testdaten Manueller Aufwand > Aufwand für Automatisierung
  2. Vorteile der Container­Technologie Isolation von Umgebungen Repository für Versionierung und

    Verteilung Nachvollziehbarer Aufbau der Umgebung Dockerfile, docker­compose.yml Start von Containern on­the­fly Einfache Parallelisierung Wenig Speicher­Overhead Teilen sich den selben Linux­Kernel
  3. Containerized GUIs # # # s t a r t

    t h e d o c k e r c o n t a i n e r v i a x ­ f o r w a r d i n g d o c k e r r u n ­ i t ­ e D I S P L A Y = $ D I S P L A Y ­ v / t m p / . X 1 1 ­ u n i x : / t m p / . X 1 1 ­ u n i x : r w r a s c h / i n k s c a p e # # # s t a r t t h e d o c k e r c o n t a i n e r w i t h V N C i n t e r f a c e # c o n n e c t v i a U R L : h t t p : / / l o c a l h o s t : 6 9 1 1 / v n c _ a u t o . h t m l ? p a s s w o r d = v n c p a s s w o r d d o c k e r r u n ­ i t ­ p 5 9 1 1 : 5 9 0 1 ­ p 6 9 1 1 : 6 9 0 1 c o n s o l / c e n t o s ­ x f c e ­ v n c d o c k e r r u n ­ i t ­ p 5 9 1 2 : 5 9 0 1 ­ p 6 9 1 2 : 6 9 0 1 c o n s o l / u b u n t u ­ x f c e ­ v n c
  4. Was bietet ? Kategorie Beschränkung auf den Browser Web Tests

    via HTML­Selectors Open Source & Java API Automatisierbarkeit & Ergebnis­Forwarder (CI, DB, Monitoring) Unterstützung bei Testerstellung (Recorder, Screenshot­Finder) Headless­Execution
  5. Demo ­ Sakuli­Containers # s t a r t t

    h e d o c k e r c o n t a i n e r d o c k e r r u n ­ i t ­ p 5 9 1 1 : 5 9 0 1 ­ p 6 9 1 1 : 6 9 0 1 c o n s o l / s a k u l i ­ c e n t o s ­ x f c e d o c k e r r u n ­ i t ­ p 5 9 1 2 : 5 9 0 1 ­ p 6 9 1 2 : 6 9 0 1 c o n s o l / s a k u l i ­ u b u n t u ­ x f c e # s t a r t i n p a r a l l e l v i a d o c k e r ­ c o m p o s e # u s e d o c k e r ­ c o m p o s . y m l f r o m h t t p s : / / g i t h u b . c o m / C o n S o l / s a k u l i / t r e e / m a s t e r / d o c k e r d o c k e r ­ c o m p o s e u p
  6. CI Demo g i t c l o n e

    h t t p s : / / g i t h u b . c o m / t o s c h n e c k / s a k u l i ­ e x a m p l e ­ b a k e r y ­ t e s t i n g . g i t # # # b u i l d t h e l o c a l i m a g e s m v n c l e a n p a c k a g e # # # s t a r t t h e a p p l i c a t i o n a n d t h e U I t e s t v i a m a v e n m v n ­ f s a k u l i ­ t e s t s ­ m a v e n / p o m . x m l c l e a n v e r i f y # # # b u i l d a n d s t a r t t h e a p p v i a d o c k e r ­ c o m p o s e c d a p p ­ d e p l o y m e n t ­ d o c k e r ­ c o m p o s e d o c k e r ­ c o m p o s e k i l l & & d o c k e r ­ c o m p o s e r m ­ f & & d o c k e r ­ c o m p o s e b u i l d & & d o c k e r ­ c o m p o s e u p ­ d # # # s t a r t t h e 4 s a k u l i ­ t e s t s i n p a r a l l e l c d . . / s a k u l i ­ t e s t s d o c k e r ­ c o m p o s e k i l l & & d o c k e r ­ c o m p o s e r m ­ f & & d o c k e r ­ c o m p o s e b u i l d & & d o c k e r ­ c o m p o s e u p
  7. Ausblick & Ideen Headless Execution ­ Linux: VNC & Docker,

    Windows: ? Video­Aufzeichnung der Testabläufe zur Fehlerdokumentation Web­UI für die Test­Suite­Verwaltung Anbindung an externe Test­Management­Lösungen (z.B. HP QC) Grafische Auswertung der Testergebnisse in CI­Umgebungen Einbindung von Selenium als Sahi­Alternative