Containerized End 2 End Testing

Ähnliche Dokumente
Sakuli End2End-Monitoring

The linux container engine. Peter Daum

End2End-Monitoring von Webapplikationen mit Sahi und OMD

Container als Immutable Infrastructure. John M. Hutchison

Docker für Entwickler

Qualitätssicherung für mobile Anwendungen Fallstudien für GUI-Testautomatisierung. Alexandra Schladebeck

Webcast: End2End-Monitoring von Webapplikationen mit Sahi und OMD

Automatisiertes UI Testing. Mark Allibone, , #2

Platform as a Service (PaaS) & Containerization

Docker für Java Entwickler

HERAUSFORDERUNGEN an die Qualitätssicherung

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Smartphone Entwicklung mit Android und Java

Docker. Eine Einführung

M&F Engineering AG Kurzübersicht Firma & Nachwuchsförderprogramm. Selenium WebDriver Testing im Mobile-Umfeld

Dr. Roland Huß ConSol* Docker für Java Entwickler

Herzlich Willkommen! Die neue Dimension des Bedienungskomforts: Fiori 2.0

Das Eclipse Jubula Projekt zur funktionalen Testautomatisierung

DOCKER IN PRACTICE. Matthias Zober EXXETA GmbH Leipzig

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Webcast: Java Nagios Monitoring in der Praxis

Embedded Computing Conference 2014 Embedded UI Qt5

Dr. Roland Huß, ConSol* Docker für Java-Entwickler

ICINGA Open Source Monitoring in Web 2.0 Style

Requirements basiertes Testen mit JUnit Architektur für eine Verbindung von Requirements Management und Test Management

Welche Testautomatisierungen sind möglich und sinnvoll?

Trivadis-Gadgets im Dienste ihrer Qualität: FAAT und PL/SQL Cop

Service Virtualisierung

Statt Banaware Java GUI Testautomatisierung

Continuous Everything

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE - APPS IOZ AG 1

IBM System z für ISVs Case Study Mobile Business Apps: COMELEO by aformatik

Moderne Benutzeroberflächen für SAP Anwendungen

Stabile GUI-Tests durch modulare Testarchitektur. Martin Moser

Effizienter Arbeiten mit der Oracle BI Suite Kleine Helferlein

End2End-Monitoring mit Sahi und OMD

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

SAP SharePoint Integration. e1 Business Solutions GmbH

Build-Pipeline mit Jenkins

Einführung in Google Web Toolkit

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

New Features Oracle Forms 11g Nichts Neu für Forms?

Prozessunterstützung durch BPR-, BPM- und Workflow-Systeme

Node.js Einführung Manuel Hart

Was kann man in APEX automatisieren?

Cnlab/CSI Herbsttagung Apps und Sandboxen

Jörg Neumann Acando GmbH

IDM: Identity Connector Framework (ICF) und SAP Connectors

HERZLICH WILLKOMMEN SHAREPOINT 2013 DEEP DIVE APPS IOZ AG 1

Web Apps. Offlinefähige mobile Webapplikationen mit XPages als Alternative zu nativen Apps Thomas Brandstätter /

Open Source Open Mind Way of Life

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Rapid Java wie mit Forms

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Moderne Web- Anwendungen mit

IT Forum Nagios und Munin zum Monitoren der IT Infrastruktur. Thomas Christlieb Softwareentwicklung cimdata software AG

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH

Daniela Reiner. Stuttgart,

Mobile hybride Applikationen Investment-App der BW-Bank

Continuous Delivery mit Docker

EPO Consulting GmbH. Ihr Partner für HTML5 und SAP UI5 Apps. Stand 2015/04. EPO Consulting GmbH - 1 -

Zürich User Summit - Inflectra

ConSol* Monitoring-Tools Ein Überblick - Mit Praxisbeispielen zum Einsatz bei Lidl -

Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web , Bilster Berg Drive Resort Michael Steinhoff, agentbase AG.

AnyWeb AG

Open Source Virtualisierung mit ovirt. DI (FH) René Koch

Agon Solutions. The native web mobile Architekturen mit HTML5 und PhoneGap. Ihre Prozesse in besten Händen.

Die Erkenntnis von gestern muss heute mit einem neuen TEAM - Ihr Partner für IT 2

Open Source IDE - eclipse ETIS SS04

Auf den Elch gekommen

Beispiel aus der Praxis

Die OSGi Service Plattform

Portal for ArcGIS - Eine Einführung

OpenSecurity Open Source Sicherheitslösungen schützen Angestellte und Daten in öffentlichen Institutionen. Das Projekt Das Produkt

Testframework für Eckelmann CNC

Testen mit Fit und Fitnesse. Ludger Solbach

CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln,

Mobile Apps: Von der Entwicklung bis zum Test mit HP Software

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

HL-Monitoring Module

Eine App, viele Plattformen

DCCS Lotusphere Nachlese 2012 Was sind XPages? Mobile Features für XPages

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:

CD in the box. Jan Rümenapf Matthias Zieger

Systemanforderungen Verlage & Akzidenzdruck

Transkript:

Containerized End 2 End Testing + Referent: Tobias Schneck, ConSol Software GmbH

Agenda 1. Einordnung End 2 End Testing 2. Welche Vorteile bieten Container Technologien? 3. Der Sakuli End 2 End Testing Container 4. Integration in die CI Umgebung 5. Ausblick

Motivation für End 2 End Testing Business kritische Applikationen bestehen oft aus einer Vielzahl an Komponenten Applikations Qualität aus Anwendersicht ist nur am Ende der Funktionskette messbar GUI ist die Schnittstelle zum End User

Testpyramide

Anforderung an Testumgebungen Robust Keine "zufälligen" Fehler Fehler sind reproduzierbar Unabhängig Möglichst wenig Abhängigkeiten zu externen Systemen Umgebung sollte exklusiv zur Verfügung stehen Isoliert Tests haben keine Abhängigkeit untereinander Tests sollten parallelisierbar sein Schnell Kurze Laufzeiten mit aussagekräftigem Feedback (vgl. Roland Huß Integration Testing mit Docker)

Besonderheiten bei End 2 End Tests Unterschiedliche Testarten Regressionstests Funktionale Abnahmetests Parallele Tests mit GUIs sind schwierig Geteilte Testdaten oder Login User User Sessions mit Stati Cleanup von Testdaten Manueller Testaufwand > Aufwand für Automatisierung

Bietet die Container Technologie Vorteile für das End 2 End Testing? Isolation von Umgebungen Container Repository für Versionierung und Verteilung Nachvollziehbarer Aufbau der Umgebung (Dockerfile) Start von Containern on the fly Einfache Parallelisierung Wenig Speicher Overhead Teilen sich den selben Linux Kernel

Virtuelle Maschinen vs. Container (am Beispiel Docker)

Demo Containerized GUIs ### start the docker container via x forwarding docker run it e DISPLAY=$DISPLAY v /tmp/.x11 unix:/tmp/.x11 unix:rw rasch/inkscape ### start the docker container with VNC interface # connect via URL: http://localhost:6911/vnc_auto.html?password=vncpassword docker run it p 5911:5901 p 6911:6901 consol/centos xfce vnc docker run it p 5912:5901 p 6912:6901 consol/ubuntu xfce vnc

Container mit GUI? Oberfläche (X Window), Steuerung, Apps

Anforderung End 2 End Testing Tool Web Test Tools haben nur Zugriff auf DOM Elemente Grafisch basierte Tests sind ressourcenintensiv OS unabhängiges Framework Rendering testbar? Wie kann man Nicht HTML Inhalte testen bzw. damit umgehen? => Flash, PKI Abfragen, Java Applets, Plugins

Was bietet? Kategorie Beschränkung auf den Browser Web Tests (DOM basiert) Open Source & Java API Automatisierbarkeit & Ergebnisauswertung über DB / Nagios / CI Tools Unterstützung bei Testerstellung (Recorder, Screenshot Finder)

Aktionsbereich: Browser Inhalt (z.b. kein Scrollen notwendig) Objekt Adressierung von DOM Elementen Java API Erkennt, wenn Seiten/AJAX Requests fertig geladen sind Guter Umgang mit AJAX & Web Frameworks Recorder Funktionalität Assert Funktionalität Aktionsbereich: Bildschirm Inhalt (Scrollen u.u. notwendig) Objekt Adressierung über Grafik Patterns Java API Keine Beschränkung auf den Browser Sieht und steuert das, was der User sieht Flexible Region Pattern OCR Features (experimental) Setzt auf java.awt.robot und opencv auf

Kurzprofil Automatisierung von End 2 End Tests End 2 End Monitoring für Applikationen Erweiterbare "Forwarder" Module SQL Datenbank, Nagios oder andre Fremdsysteme Open Source (Apache License 2.0) 998 commits, 8 contributors Entwicklung seit Mitte 2013 Im Einsatz bei verschiedenen Branchen IT & Telekommunikation Banken & Versicherungen Bau & Innenausbau

Aufbau der Testdefinition

Test Case Aufbau // tc.js /************************************* * Initialization of the JAVA backend * and set warning and critical time *************************************/ _dynamicinclude($includefolder); var testcase = new TestCase(60, 70); var env = new Environment(); var appnotepad = new Application("gedit"); var region = new Region(); /****************************** * Description of the test case ******************************/ try { //... /************************************************ * Exception handling and shutdown of test case **********************************************/ } catch (e) { testcase.handleexception(e); } finally { testcase.saveresult(); }

Aufruf von Sahi Funktionen // tc.js /************************ * Call Sahi Functions ***********************/ _navigateto("http://labs.consol.de/lang/en"); _highlight(_link("projects")); _click(_link("projects")); _highlight(_link("check_mysql_health")); _click(_link("check_mysql_health")); _highlight(_link("check_oracle_health")); _click(_link("check_oracle_health")); _setvalue(_textbox("s"), "nagios"); _click(_link("home[1]")); testcase.endofstep("project", 20);

Fluent API // tc.js /*** calculator app ***/ var calculatorapp = new Application("galculator").open(); testcase.endofstep("open Calculator", 3); /*** calculate 525 + 100 ***/ var calculatorregion = calculatorapp.getregion(); calculatorregion.type("525").find("plus.png").click().type("100").find("calculate").click(); testcase.endofstep("calculate 525 +100", 20);

Custom Functions // tc.js /********** * TAB+ALT *********/ function switchwindow() { env.type(key.tab, Key.ALT); } /*************** * Go back to notepad **************/ function backtonotepad() { switchwindow(); env.type("finish!\n\n"); }

Sakuli End 2 End Testing Container

Demo Sakuli Containers # start the docker container docker run it p 5911:5901 p 6911:6901 consol/sakuli centos xfce docker run it p 5912:5901 p 6912:6901 consol/sakuli ubuntu xfce # start in parallel via docker compose # use docker compos.yml from https://github.com/consol/sakuli/tree/master/docker docker compose up

Nagios & Incinga Integration

Erweiterbare Architektur

CI Demo Aufbau

CI Demo ConSol CM6 ssh cclusr@10.4.14.131 # start single container via docker compose on remote host cd ~/sakuli example testautomation day/docker_e2e docker compose rm f sakuli cm_check_links && docker compose up sakuli cm_check_links

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 extern Test Management Lösungen (z.b. HP QC) Grafische Auswertung der Testergebnisse in CI Umgebungen

Links https://github.com/consol/sakuli https://github.com/consol/sakuliexample testautomation day https://twitter.com/sakuli_e2e https://twitter.com/consol_de

Fragen?

Vielen Dank! Tobias Schneck tobias.schneck@consol.de ConSol Software GmbH Franziskanerstraße 38 D 81669 München Tel: +49 89 45841 100 Fax: +49 89 45841 111 info@consol.de www.consol.de