think inside container
TRANSCRIPT
![Page 1: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/1.jpg)
THINK INSIDE CONTAINERRELIABLE AND SCALABLE INFRASTRUCTURE FOR SELENIUM TESTS
IRFAN AHMAD @notimewaste
![Page 2: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/2.jpg)
OUTLINE
Why?
Wat?
Why ?
Why ?
Why ?
Why?
What?
Really?
How?
What Next?
![Page 3: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/3.jpg)
WHY THIS TALK …
ship tests as containers, not code.
![Page 4: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/4.jpg)
WHY SHOULD WE CARE….
power lies in “packaging”
![Page 5: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/5.jpg)
WHY ?
CHALLENGES IN TESTING & DELIVERY
![Page 6: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/6.jpg)
WHY WE FAIL TO TEST?
45%
18% 2%
35%
Unreliable Tests Infra.
Unreliable Tests
Ineffective Tests
Not needed
![Page 7: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/7.jpg)
MATRIX FROM HELL - SHIP GOODS?
![Page 8: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/8.jpg)
MATRIX FROM HELL - SHIP SOFTWARE?
![Page 9: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/9.jpg)
CONTAINERS TO RESCUE
![Page 10: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/10.jpg)
WHAT ?
CONTAINERS
![Page 11: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/11.jpg)
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
![Page 12: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/12.jpg)
LIFE BEFORE/AFTER CONTAINERS
CONFIG
VAGRANT JENKINS CHEF
DEV TEST LIVE
CODE CONFIG CODE
CONTAINER
DEV TEST LIVE
container becoming a “unit of exchange”
![Page 13: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/13.jpg)
DOCKER▸ Docker is an open platform for developers and
sysadmins to build, ship, and run distributed applications.
![Page 14: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/14.jpg)
DOCKER HUB
https://hub.docker.com/r/selenium/hub/
![Page 15: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/15.jpg)
CONTAINERS VS VM .
![Page 16: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/16.jpg)
DOCKER : BASIC WORKFLOW
![Page 17: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/17.jpg)
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
![Page 18: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/18.jpg)
REALLY?
LETS - SEE DEMO
https://www.youtube.com/watch?v=KH5egcHe4UU
![Page 19: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/19.jpg)
![Page 20: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/20.jpg)
HOW?
CONTAINERISE YOUR STACK
![Page 21: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/21.jpg)
1.INSTALL DOCKER (ONLY)
docker for mac / windows docker toolbox docker engine for linux
![Page 22: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/22.jpg)
2.WRITE DOCKERFILE▸ configuration file with build instructions for
Docker images
![Page 23: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/23.jpg)
3.WRITE COMPOSE ▸ Compose is a tool for defining and running
multi-container Docker applications
![Page 24: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/24.jpg)
SIMPLE VOTING APP : APP UNDER TEST▸ Simple Real Time voting app
▸ Runs with Docker Compose and multiple containers in network
![Page 25: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/25.jpg)
VOTING APP : COMPONENTS
![Page 26: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/26.jpg)
Deliver below tests as container to test Voting app
1.API 2.Web 3.Web with Selenium Grid
PROBLEM STATEMENT
![Page 27: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/27.jpg)
SOLUTION - TESTING AS CONTAINERS
VOTING APP
REDIS
RESULT APP
WORKER
DATABASE
SE. HUB
CHROME
FIREFOX
CHROME
FIREFOX
CHROME
FIREFOX
TESTSTACK
APPIUM
![Page 28: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/28.jpg)
REALLY?
LETS - LIVE DEMO
https://www.youtube.com/watch?v=kXlS69PXX68
![Page 29: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/29.jpg)
WHAT NEXT?
CONAINERISE EVERYTHING
![Page 30: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/30.jpg)
TRY A SIMPLE CI WORKFLOW
![Page 31: Think Inside Container](https://reader031.vdocument.in/reader031/viewer/2022020410/587586751a28ab901c8b4db5/html5/thumbnails/31.jpg)
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