think inside container

31
THINK INSIDE CONTAINER RELIABLE AND SCALABLE INFRASTRUCTURE FOR SELENIUM TESTS IRFAN AHMAD @notimewaste

Upload: irfan-ahmad

Post on 11-Jan-2017

197 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Think Inside Container

THINK INSIDE CONTAINERRELIABLE AND SCALABLE INFRASTRUCTURE FOR SELENIUM TESTS

IRFAN AHMAD @notimewaste

Page 2: Think Inside Container

OUTLINE

Why?

Wat?

Why ?

Why ?

Why ?

Why?

What?

Really?

How?

What Next?

Page 3: Think Inside Container

WHY THIS TALK …

ship tests as containers, not code.

Page 4: Think Inside Container

WHY SHOULD WE CARE….

power lies in “packaging”

Page 5: Think Inside Container

WHY ?

CHALLENGES IN TESTING & DELIVERY

Page 6: Think Inside Container

WHY WE FAIL TO TEST?

45%

18% 2%

35%

Unreliable Tests Infra.

Unreliable Tests

Ineffective Tests

Not needed

Page 7: Think Inside Container

MATRIX FROM HELL - SHIP GOODS?

Page 8: Think Inside Container

MATRIX FROM HELL - SHIP SOFTWARE?

Page 9: Think Inside Container

CONTAINERS TO RESCUE

Page 10: Think Inside Container

WHAT ?

CONTAINERS

Page 11: Think Inside Container

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

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

DOCKER▸ Docker is an open platform for developers and

sysadmins to build, ship, and run distributed applications.

Page 14: Think Inside Container

DOCKER HUB

https://hub.docker.com/r/selenium/hub/

Page 15: Think Inside Container

CONTAINERS VS VM .

Page 16: Think Inside Container

DOCKER : BASIC WORKFLOW

Page 17: Think Inside Container

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

REALLY?

LETS - SEE DEMO

https://www.youtube.com/watch?v=KH5egcHe4UU

Page 19: Think Inside Container
Page 20: Think Inside Container

HOW?

CONTAINERISE YOUR STACK

Page 21: Think Inside Container

1.INSTALL DOCKER (ONLY)

docker for mac / windows docker toolbox docker engine for linux

Page 22: Think Inside Container

2.WRITE DOCKERFILE▸ configuration file with build instructions for

Docker images

Page 23: Think Inside Container

3.WRITE COMPOSE ▸ Compose is a tool for defining and running

multi-container Docker applications

Page 24: Think Inside Container

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

VOTING APP : COMPONENTS

Page 26: Think Inside Container

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

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

REALLY?

LETS - LIVE DEMO

https://www.youtube.com/watch?v=kXlS69PXX68

Page 29: Think Inside Container

WHAT NEXT?

CONAINERISE EVERYTHING

Page 30: Think Inside Container

TRY A SIMPLE CI WORKFLOW

Page 31: Think Inside Container

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