SlideShare une entreprise Scribd logo
1  sur  19
DOCKER - GRID
ON DEMAND AND SCALABLE DOCKERIZED SELENIUM GRID
ARCHITECTURE
Kandeel Chauhan, Yogit Thakral
Agenda
• Objective (Slide No. 3)
• Introduction of Project (Slide No. 4-7)
• Docker Grid v/s Windows Grid (Slide No. 8)
• How it Works ? (Slide No. 9)
• Case Study (Slide No. 10-13)
• Statistical Data (Slide No. 14-15)
• Conclusion (Slide No. 16)
• References (Slide No. 17)
2
Objective
• To create an infra where Selenium Grids are available on-demand.
- Ensure availability to each tester in the team.
- Eliminate waiting time for Jobs in queues.
• To Reduce Execution Time of Test Suites.
• To create a Plug N Play solution compatible with different frameworks.
• To reduce maintenance effort.
• To ensure reliable execution of test scripts.
3
Traditional Automation Test Execution Architecture
Introduction
Image Credits :- http://www.mchubarov.com/ 4
Challenges With a Normal/Traditional
Selenium-Grid
• Stability – Encounters with crashes are more often, requires
manual maintenance/rebooting .
• Scalability – Not scalable/Fixed size. We cannot specify number
of nodes or hubs at the runtime for efficient parallel execution.
• Efficiency – Resource Hungry , needs a full OS on separate node
to operate.
5
Jenkins Job
(Test Suite
T1)
Jenkins Job
(Test Suite
T2)
Jenkins Job
(Test Suite
Tn)
Hub 2
Node
N3
Node Nn
....................
Host Machine 192.168.0.1
.........................
Node
N2
Node
N1
Hub 1
Node
N3
Node Nn
Node
N2
Node
N1
Hub x
Node
N3
Node Nn
Node
N2
Node
N1
Docker Grid Architecture
6
Benefits of Docker-Grid
• Zero Waiting Time:- Since Test Suite will all start executing at once ,
you will experience zero waiting time of your scripts.
• Decreased Execution Time :- Running Test Cases on non-GUI mode
saves execution time.
• Isolated Execution Environment :- Each Test Suite can be executed
inside a separate Selenium Grid Cluster which will be created at
runtime for Test Suite Execution and will be disposed off after we get
our execution Reports.
• Efficient Resource Utilization :- Since you do not need to have a Full
OS installed for setting up Multiple Nodes , it saves a lot of CPU
utilization and System RAM.
• Maintenance Effort :-Since the execution environment will be 7
DOCKER GRID V/S WINDOWS GRID
8
FEATURES Windows Grid Docker Grid
Isolated Execution Environment ✔
Scalable ✔
On Demand ✔
Underlying OS Windows Linux
Centalized ✔
Maintainence Free ✔
Hardware Efficient ✔
Zero Waiting Time ✔
Browsers Supported
Chome,Firefox, Opera,
Safari , Internet Explorer
Chome,Firefox,
Opera 8
Working Model of Docker Grid
9
Jenkins
Slave(Host
machine)
Docker-
compose file
run
Jenkins Build
NodeSelenium
Hub
Download Project Through Git and Execute
mvn test command
............
Command is
successful
No Dipose the grid
Containers
Yes
Dipose the grid
Containers
Take out the
results and
upload them to
jenkins
Case Study:-
# Hardware Infra :-
1) Windows Grid :8 Core 16 GB (4 pcs worth 2 core @2.5ghz 4 gb each).
2) Docker Grid : 8 Core 16 GB (Centralized Linux machine).
10
Capabilities Windows Grid Docker Grid
Max No. of Parallel Browser Sessions Supported 8 24
Suites that can be run at the same time
(Parallel Test Suite Execution)
Single Multiple
Changing the No. of Nodes /Browser Instances
dynamically. ✔
Case Study:-
Test Suite Jenkins Build
Status
Test Suite 1 Running
Test Suite 2 Waiting in Queue
Test Suite 3 Waiting in Queue
Test Suite 4 Waiting in Queue
Test Suite 5 Waiting in Queue
Test Suite Jenkins Build
Status
Test Suite 1 Running
Test Suite 2 Running
Test Suite 3 Running
Test Suite 4 Running
Test Suite 5 Running
Before Implementation After Implementation
11
Scenario 2 :-Selenium hub Situation on Windows Grid
(Test Suite Running on Staging Server and Live Server Simultaneously)
Jenkins
Slave(Hub)
Hub, Nodes
-- 1.1.1.1
Un
Intentional
Results
Jenkins
Slave(Hub)
Test
Suite1(Staging)
Test Suite 2(Live)
Jenkins
Build
Change host
Entry to Staging
Server
Jenkins
Build
This will also
start Executing
on Staging
server
Jenkins
Slave(Hub1)
Hub, Nodes
-- 1.1.1.1
Hub, Nodes
-- 1.1.1.2
Jenkins
Slave(Hub2)
Test
Suite1(Staging)
Test Suite 2(Live)
Jenkins
Build
Setting host
Entry to Staging
Server
Jenkins
Build
Setting host
Entry to Live
Server
Windows Grid :-
Docker Grid :-
12
Hub 1
Hub2
Jenkins Slave Start Execution
ErrorJenkins Slave
Test
Suite1(Test
server)
Test Suite
1(Live)
Jenkins
Build
Downloading
Project Inside
Jenkins Host
Jenkins
Build
Downloading
Project Inside
Jenkins Host
Master
Branch
Debug
Branch
Scenario 3 :-Selenium hub Situation On Windows Grid
Use Case :- Same Project Different Branches/Code Base
Windows Grid :-
Jenkins
Slave(Docker
Host)
Test Suite 1
execution is
isolated .
Test Suite 1
execution is
isolated .
Jenkins
Slave(Docker
Host)
Test
Suite1(Test
server)
Test Suite
1(Live)
Downloading
Project Inside
Hub 1
Jenkins
Build
Downloading
Project Inside
Hub 2
Jenkins
Build
Master
Branch
Debug
Branch
Docker Grid :-
13
Statistics:- For Single Test Suite Execution
Suite Before
Implementation
After Implementation
(With 16 browsers
Sessions)
Percentage decrease
in execution time.
Test Suite A 6 minutes 2 Minutes 66.67%
Test Suite B 40 Minutes 19 Minutes 52.5%
Test Suite C 13 Minutes 4 Minutes 2 Seconds 69.2%
Test Suite D 7 Minutes 30 Seconds 2 Minute 3 Seconds 72.67%
14
Statistics:- Execution Time Comparison
Suite Before Implementation After Implementation
(With 3 parallel Grids and 16 Browser sessions)
Test Suite 1 32 Minutes 15 Minutes
Test Suite 2 17 Minutes 7 Minutes
Test Suite 3 38 Minutes 19 Minutes
Test Suite 4 8 Minutes 3 Minutes
Test Suite 5 29 Minutes 14 Minutes
Test Suite 6 55 Minutes 26 Minutes
Test Suite 7 35 Minutes 17.50 Minutes
Test Suite 8 22 Minutes 8.50 Minutes
Test Suite 9 5.5 Minutes 2.50 Minutes
Test Suite 10 31 Minutes 14.50 Minutes
Test Suite 11 120 Minutes 56 Minutes
Total Execution Time 6 hours 30 Minutes <70 Minutes
Percentage Decrease 82.05% Decrease in Overall Execution Time
15
Conclusion
After Implementing this architecture :-
1. There is practically zero waiting time of our test suite execution.
2. There is no limit up to which we can increase our execution
nodes, this all depends on how large your VM or physical
machine resources are.
3. This doesn’t require any major modification in your framework ,
just pointing your Firefox/Chrome to correct path(Docker
container path ) will do.
4. This architecture is centralized , so , for all your multiple teams ,
multiple projects , you can use the same powerful infra which can
be maintained easily.
16
References
• https://github.com/yogitthakral/dockergrid
• https://docs.docker.com/
• https://stackoverflow.com
• https://hub.docker.com/
• https://medium.com/@kandeelchauhan/docker-selenium-
grid-5551dc9fed36
17
So, The next time when you see your scripts waiting…
Just ..
Image Credits :- MemeCreator.org 18
THE END
Thank You All, You’ve been
absolutely lovely.
19

Contenu connexe

Tendances

CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandTroublemaker Khunpech
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Edureka!
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management toolsSonu Meena
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes ArchitectureKnoldus Inc.
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Edureka!
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Edureka!
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVASrinivas Katakam
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introductionJason Hu
 
Building a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKSBuilding a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKSDevOps.com
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarPascal Larocque
 

Tendances (20)

CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Devops & Configuration management tools
Devops & Configuration management toolsDevops & Configuration management tools
Devops & Configuration management tools
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
 
Building a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKSBuilding a Kubernetes App with Amazon EKS
Building a Kubernetes App with Amazon EKS
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Selenium
SeleniumSelenium
Selenium
 

Similaire à Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)

DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...DataStax
 
Effective Testing in DSE
Effective Testing in DSEEffective Testing in DSE
Effective Testing in DSEpedjak
 
Linux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New ReleasesLinux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New ReleasesSamsung Open Source Group
 
Be flexible with zalenium, a dockerized selenium grid infrastructure
Be flexible with zalenium, a dockerized selenium grid infrastructureBe flexible with zalenium, a dockerized selenium grid infrastructure
Be flexible with zalenium, a dockerized selenium grid infrastructureGeorgios Romanas
 
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesJenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesAndy Pemberton
 
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarTestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarXebia Nederland BV
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentMax Klymyshyn
 
Introduction to Selenium grid
Introduction to Selenium gridIntroduction to Selenium grid
Introduction to Selenium gridKnoldus Inc.
 
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalSpeed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalDanylo Kuvshynov
 
Level Up Your Integration Testing With Testcontainers
Level Up Your Integration Testing With TestcontainersLevel Up Your Integration Testing With Testcontainers
Level Up Your Integration Testing With TestcontainersVMware Tanzu
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Longericlongtx
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know Howaragavan
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldDevOps.com
 
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUpAutoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUparagavan
 
Dockerization of real mobile device farm and scalable QA automation ecosystem
Dockerization of real mobile device farm and scalable QA automation ecosystemDockerization of real mobile device farm and scalable QA automation ecosystem
Dockerization of real mobile device farm and scalable QA automation ecosystemAlexey Khursevich
 
XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainersVincent Massol
 
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx PluginGr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx PluginYasuharu Nakano
 
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.pptNaviAningi
 
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.pptKKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.pptKiran Kumar SD
 

Similaire à Docker–Grid (A On demand and Scalable dockerized selenium grid architecture) (20)

DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
 
Effective Testing in DSE
Effective Testing in DSEEffective Testing in DSE
Effective Testing in DSE
 
Linux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New ReleasesLinux Kernel Selftest Framework - Quality Control for New Releases
Linux Kernel Selftest Framework - Quality Control for New Releases
 
Be flexible with zalenium, a dockerized selenium grid infrastructure
Be flexible with zalenium, a dockerized selenium grid infrastructureBe flexible with zalenium, a dockerized selenium grid infrastructure
Be flexible with zalenium, a dockerized selenium grid infrastructure
 
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesJenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
 
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarTestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
Introduction to Selenium grid
Introduction to Selenium gridIntroduction to Selenium grid
Introduction to Selenium grid
 
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortalSpeed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
Speed up your regression and reduce cost load with Selenoid + K8s + ReportPortal
 
Level Up Your Integration Testing With Testcontainers
Level Up Your Integration Testing With TestcontainersLevel Up Your Integration Testing With Testcontainers
Level Up Your Integration Testing With Testcontainers
 
Jenkins days workshop pipelines - Eric Long
Jenkins days workshop  pipelines - Eric LongJenkins days workshop  pipelines - Eric Long
Jenkins days workshop pipelines - Eric Long
 
Scalable QA With Docker
Scalable QA With DockerScalable QA With Docker
Scalable QA With Docker
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know How
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
 
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUpAutoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
 
Dockerization of real mobile device farm and scalable QA automation ecosystem
Dockerization of real mobile device farm and scalable QA automation ecosystemDockerization of real mobile device farm and scalable QA automation ecosystem
Dockerization of real mobile device farm and scalable QA automation ecosystem
 
XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainers
 
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx PluginGr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
Gr8conf EU 2013 Speed up your development: GroovyServ and Grails Improx Plugin
 
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
 
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.pptKKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
 

Plus de STePINForum

Am I a Social Monster?
Am I a Social Monster?Am I a Social Monster?
Am I a Social Monster?STePINForum
 
Code to Release using Artificial Intelligence and Machine Learning
Code to Release using Artificial Intelligence and Machine LearningCode to Release using Artificial Intelligence and Machine Learning
Code to Release using Artificial Intelligence and Machine LearningSTePINForum
 
Predictive Analytics based Regression Test Optimization
Predictive Analytics based Regression Test OptimizationPredictive Analytics based Regression Test Optimization
Predictive Analytics based Regression Test OptimizationSTePINForum
 
Blockchain and AI - Match made in Heaven
Blockchain and AI - Match made in HeavenBlockchain and AI - Match made in Heaven
Blockchain and AI - Match made in HeavenSTePINForum
 
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...STePINForum
 
Self Healing - Bringing Intelligence into Automation
Self Healing - Bringing Intelligence into AutomationSelf Healing - Bringing Intelligence into Automation
Self Healing - Bringing Intelligence into AutomationSTePINForum
 
Quality engineering in a world with AI and IoT
Quality engineering in a world with AI and IoTQuality engineering in a world with AI and IoT
Quality engineering in a world with AI and IoTSTePINForum
 
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...STePINForum
 
Performance Testing Internet of Things
Performance Testing Internet of ThingsPerformance Testing Internet of Things
Performance Testing Internet of ThingsSTePINForum
 
Continuous Testing: Preparing for DevOps
Continuous Testing: Preparing for DevOpsContinuous Testing: Preparing for DevOps
Continuous Testing: Preparing for DevOpsSTePINForum
 
Blockchain and AI: Powering the future
Blockchain and AI: Powering the futureBlockchain and AI: Powering the future
Blockchain and AI: Powering the futureSTePINForum
 
AI driven classification framework for advanced Test Automation
AI driven classification framework for advanced Test AutomationAI driven classification framework for advanced Test Automation
AI driven classification framework for advanced Test AutomationSTePINForum
 
Jugaadu Automation - The Real Desi Test Automation Story
Jugaadu Automation - The Real Desi Test Automation StoryJugaadu Automation - The Real Desi Test Automation Story
Jugaadu Automation - The Real Desi Test Automation StorySTePINForum
 

Plus de STePINForum (13)

Am I a Social Monster?
Am I a Social Monster?Am I a Social Monster?
Am I a Social Monster?
 
Code to Release using Artificial Intelligence and Machine Learning
Code to Release using Artificial Intelligence and Machine LearningCode to Release using Artificial Intelligence and Machine Learning
Code to Release using Artificial Intelligence and Machine Learning
 
Predictive Analytics based Regression Test Optimization
Predictive Analytics based Regression Test OptimizationPredictive Analytics based Regression Test Optimization
Predictive Analytics based Regression Test Optimization
 
Blockchain and AI - Match made in Heaven
Blockchain and AI - Match made in HeavenBlockchain and AI - Match made in Heaven
Blockchain and AI - Match made in Heaven
 
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...
Machine Learning & Artificial Intelligence - Machine Controlled Data Dispensa...
 
Self Healing - Bringing Intelligence into Automation
Self Healing - Bringing Intelligence into AutomationSelf Healing - Bringing Intelligence into Automation
Self Healing - Bringing Intelligence into Automation
 
Quality engineering in a world with AI and IoT
Quality engineering in a world with AI and IoTQuality engineering in a world with AI and IoT
Quality engineering in a world with AI and IoT
 
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...
How accurate are the Wearable fitness tracker showing 10000 steps in a day: A...
 
Performance Testing Internet of Things
Performance Testing Internet of ThingsPerformance Testing Internet of Things
Performance Testing Internet of Things
 
Continuous Testing: Preparing for DevOps
Continuous Testing: Preparing for DevOpsContinuous Testing: Preparing for DevOps
Continuous Testing: Preparing for DevOps
 
Blockchain and AI: Powering the future
Blockchain and AI: Powering the futureBlockchain and AI: Powering the future
Blockchain and AI: Powering the future
 
AI driven classification framework for advanced Test Automation
AI driven classification framework for advanced Test AutomationAI driven classification framework for advanced Test Automation
AI driven classification framework for advanced Test Automation
 
Jugaadu Automation - The Real Desi Test Automation Story
Jugaadu Automation - The Real Desi Test Automation StoryJugaadu Automation - The Real Desi Test Automation Story
Jugaadu Automation - The Real Desi Test Automation Story
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)

  • 1. DOCKER - GRID ON DEMAND AND SCALABLE DOCKERIZED SELENIUM GRID ARCHITECTURE Kandeel Chauhan, Yogit Thakral
  • 2. Agenda • Objective (Slide No. 3) • Introduction of Project (Slide No. 4-7) • Docker Grid v/s Windows Grid (Slide No. 8) • How it Works ? (Slide No. 9) • Case Study (Slide No. 10-13) • Statistical Data (Slide No. 14-15) • Conclusion (Slide No. 16) • References (Slide No. 17) 2
  • 3. Objective • To create an infra where Selenium Grids are available on-demand. - Ensure availability to each tester in the team. - Eliminate waiting time for Jobs in queues. • To Reduce Execution Time of Test Suites. • To create a Plug N Play solution compatible with different frameworks. • To reduce maintenance effort. • To ensure reliable execution of test scripts. 3
  • 4. Traditional Automation Test Execution Architecture Introduction Image Credits :- http://www.mchubarov.com/ 4
  • 5. Challenges With a Normal/Traditional Selenium-Grid • Stability – Encounters with crashes are more often, requires manual maintenance/rebooting . • Scalability – Not scalable/Fixed size. We cannot specify number of nodes or hubs at the runtime for efficient parallel execution. • Efficiency – Resource Hungry , needs a full OS on separate node to operate. 5
  • 6. Jenkins Job (Test Suite T1) Jenkins Job (Test Suite T2) Jenkins Job (Test Suite Tn) Hub 2 Node N3 Node Nn .................... Host Machine 192.168.0.1 ......................... Node N2 Node N1 Hub 1 Node N3 Node Nn Node N2 Node N1 Hub x Node N3 Node Nn Node N2 Node N1 Docker Grid Architecture 6
  • 7. Benefits of Docker-Grid • Zero Waiting Time:- Since Test Suite will all start executing at once , you will experience zero waiting time of your scripts. • Decreased Execution Time :- Running Test Cases on non-GUI mode saves execution time. • Isolated Execution Environment :- Each Test Suite can be executed inside a separate Selenium Grid Cluster which will be created at runtime for Test Suite Execution and will be disposed off after we get our execution Reports. • Efficient Resource Utilization :- Since you do not need to have a Full OS installed for setting up Multiple Nodes , it saves a lot of CPU utilization and System RAM. • Maintenance Effort :-Since the execution environment will be 7
  • 8. DOCKER GRID V/S WINDOWS GRID 8 FEATURES Windows Grid Docker Grid Isolated Execution Environment ✔ Scalable ✔ On Demand ✔ Underlying OS Windows Linux Centalized ✔ Maintainence Free ✔ Hardware Efficient ✔ Zero Waiting Time ✔ Browsers Supported Chome,Firefox, Opera, Safari , Internet Explorer Chome,Firefox, Opera 8
  • 9. Working Model of Docker Grid 9 Jenkins Slave(Host machine) Docker- compose file run Jenkins Build NodeSelenium Hub Download Project Through Git and Execute mvn test command ............ Command is successful No Dipose the grid Containers Yes Dipose the grid Containers Take out the results and upload them to jenkins
  • 10. Case Study:- # Hardware Infra :- 1) Windows Grid :8 Core 16 GB (4 pcs worth 2 core @2.5ghz 4 gb each). 2) Docker Grid : 8 Core 16 GB (Centralized Linux machine). 10 Capabilities Windows Grid Docker Grid Max No. of Parallel Browser Sessions Supported 8 24 Suites that can be run at the same time (Parallel Test Suite Execution) Single Multiple Changing the No. of Nodes /Browser Instances dynamically. ✔
  • 11. Case Study:- Test Suite Jenkins Build Status Test Suite 1 Running Test Suite 2 Waiting in Queue Test Suite 3 Waiting in Queue Test Suite 4 Waiting in Queue Test Suite 5 Waiting in Queue Test Suite Jenkins Build Status Test Suite 1 Running Test Suite 2 Running Test Suite 3 Running Test Suite 4 Running Test Suite 5 Running Before Implementation After Implementation 11
  • 12. Scenario 2 :-Selenium hub Situation on Windows Grid (Test Suite Running on Staging Server and Live Server Simultaneously) Jenkins Slave(Hub) Hub, Nodes -- 1.1.1.1 Un Intentional Results Jenkins Slave(Hub) Test Suite1(Staging) Test Suite 2(Live) Jenkins Build Change host Entry to Staging Server Jenkins Build This will also start Executing on Staging server Jenkins Slave(Hub1) Hub, Nodes -- 1.1.1.1 Hub, Nodes -- 1.1.1.2 Jenkins Slave(Hub2) Test Suite1(Staging) Test Suite 2(Live) Jenkins Build Setting host Entry to Staging Server Jenkins Build Setting host Entry to Live Server Windows Grid :- Docker Grid :- 12 Hub 1 Hub2
  • 13. Jenkins Slave Start Execution ErrorJenkins Slave Test Suite1(Test server) Test Suite 1(Live) Jenkins Build Downloading Project Inside Jenkins Host Jenkins Build Downloading Project Inside Jenkins Host Master Branch Debug Branch Scenario 3 :-Selenium hub Situation On Windows Grid Use Case :- Same Project Different Branches/Code Base Windows Grid :- Jenkins Slave(Docker Host) Test Suite 1 execution is isolated . Test Suite 1 execution is isolated . Jenkins Slave(Docker Host) Test Suite1(Test server) Test Suite 1(Live) Downloading Project Inside Hub 1 Jenkins Build Downloading Project Inside Hub 2 Jenkins Build Master Branch Debug Branch Docker Grid :- 13
  • 14. Statistics:- For Single Test Suite Execution Suite Before Implementation After Implementation (With 16 browsers Sessions) Percentage decrease in execution time. Test Suite A 6 minutes 2 Minutes 66.67% Test Suite B 40 Minutes 19 Minutes 52.5% Test Suite C 13 Minutes 4 Minutes 2 Seconds 69.2% Test Suite D 7 Minutes 30 Seconds 2 Minute 3 Seconds 72.67% 14
  • 15. Statistics:- Execution Time Comparison Suite Before Implementation After Implementation (With 3 parallel Grids and 16 Browser sessions) Test Suite 1 32 Minutes 15 Minutes Test Suite 2 17 Minutes 7 Minutes Test Suite 3 38 Minutes 19 Minutes Test Suite 4 8 Minutes 3 Minutes Test Suite 5 29 Minutes 14 Minutes Test Suite 6 55 Minutes 26 Minutes Test Suite 7 35 Minutes 17.50 Minutes Test Suite 8 22 Minutes 8.50 Minutes Test Suite 9 5.5 Minutes 2.50 Minutes Test Suite 10 31 Minutes 14.50 Minutes Test Suite 11 120 Minutes 56 Minutes Total Execution Time 6 hours 30 Minutes <70 Minutes Percentage Decrease 82.05% Decrease in Overall Execution Time 15
  • 16. Conclusion After Implementing this architecture :- 1. There is practically zero waiting time of our test suite execution. 2. There is no limit up to which we can increase our execution nodes, this all depends on how large your VM or physical machine resources are. 3. This doesn’t require any major modification in your framework , just pointing your Firefox/Chrome to correct path(Docker container path ) will do. 4. This architecture is centralized , so , for all your multiple teams , multiple projects , you can use the same powerful infra which can be maintained easily. 16
  • 17. References • https://github.com/yogitthakral/dockergrid • https://docs.docker.com/ • https://stackoverflow.com • https://hub.docker.com/ • https://medium.com/@kandeelchauhan/docker-selenium- grid-5551dc9fed36 17
  • 18. So, The next time when you see your scripts waiting… Just .. Image Credits :- MemeCreator.org 18
  • 19. THE END Thank You All, You’ve been absolutely lovely. 19