Think Inside Container
-
Upload
irfan-ahmad -
Category
Internet
-
view
197 -
download
0
Transcript of Think Inside Container
THINK INSIDE CONTAINERRELIABLE AND SCALABLE INFRASTRUCTURE FOR SELENIUM TESTS
IRFAN AHMAD @notimewaste
OUTLINE
Why?
Wat?
Why ?
Why ?
Why ?
Why?
What?
Really?
How?
What Next?
WHY THIS TALK …
ship tests as containers, not code.
WHY SHOULD WE CARE….
power lies in “packaging”
WHY ?
CHALLENGES IN TESTING & DELIVERY
WHY WE FAIL TO TEST?
45%
18% 2%
35%
Unreliable Tests Infra.
Unreliable Tests
Ineffective Tests
Not needed
MATRIX FROM HELL - SHIP GOODS?
MATRIX FROM HELL - SHIP SOFTWARE?
CONTAINERS TO RESCUE
WHAT ?
CONTAINERS
AN APPLICATION, PLUS ALL ITS DEPENDENCIES, LIBRARIES AND OTHER BINARIES, AND CONFIGURATION FILES NEEDED TO RUN IT, BUNDLED INTO ONE PACKAGE.
WHAT ARE CONTAINERS?
AN ENTIRE ISOLATED PORTABLE RUNTIME ENVIRONMENT
LIFE BEFORE/AFTER CONTAINERS
CONFIG
VAGRANT JENKINS CHEF
DEV TEST LIVE
CODE CONFIG CODE
CONTAINER
DEV TEST LIVE
container becoming a “unit of exchange”
DOCKER▸ Docker is an open platform for developers and
sysadmins to build, ship, and run distributed applications.
DOCKER HUB
https://hub.docker.com/r/selenium/hub/
CONTAINERS VS VM .
DOCKER : BASIC WORKFLOW
DOCKER: UNDERSTANDING BASIC WORKFLOW
DOCKER RUN LOOKS FOR LOCAL IMAGES PRESENT?
LOOKS REGISTRY FOR IMAGES
NO
AVAILABLE ?
DOWNLOADS THE IMAGE
IMAGE INSTALLED LOCALLY
CREATES NEW CONTAINER AND
STARTS
CONTAINER IS RUNNING
YES
YES
NOEXIT
REALLY?
LETS - SEE DEMO
https://www.youtube.com/watch?v=KH5egcHe4UU
HOW?
CONTAINERISE YOUR STACK
1.INSTALL DOCKER (ONLY)
docker for mac / windows docker toolbox docker engine for linux
2.WRITE DOCKERFILE▸ configuration file with build instructions for
Docker images
3.WRITE COMPOSE ▸ Compose is a tool for defining and running
multi-container Docker applications
SIMPLE VOTING APP : APP UNDER TEST▸ Simple Real Time voting app
▸ Runs with Docker Compose and multiple containers in network
VOTING APP : COMPONENTS
Deliver below tests as container to test Voting app
1.API 2.Web 3.Web with Selenium Grid
PROBLEM STATEMENT
SOLUTION - TESTING AS CONTAINERS
VOTING APP
REDIS
RESULT APP
WORKER
DATABASE
SE. HUB
CHROME
FIREFOX
CHROME
FIREFOX
CHROME
FIREFOX
TESTSTACK
APPIUM
REALLY?
LETS - LIVE DEMO
https://www.youtube.com/watch?v=kXlS69PXX68
WHAT NEXT?
CONAINERISE EVERYTHING
TRY A SIMPLE CI WORKFLOW
Q & A THANK YOU
Available - For Hands On
Github https://github.com/irfanah/TestStack https://github.com/irfanah/example-voting-app
Docker hub https://hub.docker.com/u/irfanah/
IRFAN AHMAD
Email [email protected] Web http://critick.io Twitter @notimewaste Github irfanah