15
Containerized End2End Testing + , Tobias Schneck ConSol Software GmbH

Containerized End-2-End Testing - Docker

Embed Size (px)

Citation preview

Containerized End­2­End Testing

 + 

,   Tobias Schneck ConSol Software GmbH

Test Pyramid

RobustIndependentIsolatedFast

Characteristics of End­2­End Testing

Different types of testing:Regression testsFunctional approval tests

Parallel tests with GUIs are complexStateful tests: user logins, sessions, historySetup and cleanup of test data

Manual effort > effort for test automation

Manual effort > effort for test automation

Advantages of Container Technology

Isolation of environmentsRepository for versioning and distributionReproducible application environmentDockerfile, docker­compose.yml

Starting containers on­the­flyOptimized for parallel executionLess memory overheadShared Linux kernel

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

 

What's provided by   ?

CategoryWeb tests through HTML selectors

Restricted to browser content

Open Source & Java API

Headless execution

Test writing assistance(recorder, screenshot finder)

Automatable / Test result reporting(CI, DB, monitoring environment)

 Nagios   OMD   Incinga

 Monitoring Integration

Sakuli End­2­End Testing Container

Demo ­ Sakuli Container# 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

Bakery Demogit clone https://github.com/toschneck/sakuli­example­bakery­testing.git 

# start jenkins jenkins/deploy_jenkins.sh # start OMD montioring omd­nagios/deploy_omd.sh 

# start the build of the application images bakery­app/app­deployment­docker­compose/deploy_app.sh 

#start tests sakuli­tests/execute_all.sh #start tests for monitoring sakuli­tests/execute_all_4_monitoring.sh

What's next?

Headless execution ­ Linux: VNC & Docker   Windows: ?Video recording of the test execution (error documentation)Web UI to handle Sakuli test suitesConnect 3rd­party test management tools (HP QC, TestRail, ...)Improve test result presentation in CI toolsSelenium as an alternative to Sahi

Links

https://github.com/ConSol/sakuli https://github.com/toschneck/sakuli­example­bakery­testing

https://twitter.com/sakuli_e2ehttps://twitter.com/consol_de

Thank you Hamburg!

Tobias Schneck  

ConSol Software GmbHFranziskanerstraße 38D­81669 MünchenTel: +49­89­45841­100Fax: +49­89­45841­111

[email protected]

[email protected]