SlideShare a Scribd company logo
Reliable. Scalable. Lightning fast.
Running 1 000 000 Android tests with
Selenoid
by Ivan Krutov
About me
Java & Golang developer
Selenoid core maintainer
Devops
Big Selenium cluster
Selenium clusters
Typical Selenium Grid
50 browsers
10000 sessions / day
1 data center
5 rps
500 Kbit/s
Sometimes down
My cluster
5000+ browsers
2.2M sessions / day
5 data centers
4000 rps
1 Gbit/s
24/7/365
Available browsers
Why
≥ 50% of Internet traffic is mobile
~ 75% of mobile devices run on Android
A lot of Android-specific bugs
Android automation is complicated
How about using real devices?
++
What can differ between devices
Android version
Phone or tablet
CPU architecture
Screen size, resolution and pixel ratio
Hardware buttons presence
Typical device problems
Low battery charge
Network connectivity problems
Sometimes logged out from Google account
Require manual software updates
Need storage and charging infrastructure
Limited lifetime, poor fault tolerance and
scalability
Real devices are a nightmare
How Selenium works on desktop
Android Debugging Bridge
Install, start and stop
applications
Copy files back and forth
Forward network ports
Open Android shell to
execute commands
Debug running
applications
Android Emulator
Android Instrumentation Framework
Low-level Java API
Subscribe to any application events
Send any events to application
Full application control
UI Automator
Java-based
Cross-app testing
Interaction between
user and system apps
Black-box testing
Chromedriver
Standalone binary
Uses Chrome JSON
debugging protocol
Automates both Chrome
Desktop and Chrome
Mobile
Web-server with
Selenium API
Appium
Implemented in node.js
Mobile JSONWire
protocol
Clients for different
programming languages
Small Demo
VM
Android Automation: Take #1
ARM
Android Automation: Take #2
x86+KVM
Android Automation: Take #3
x863D
Android Automation: Take #4
ADBAppium
Android Automation: Take #5
Test
Selenium Hub + Docker + Emulators
Good isolation between emulators
Issues with ADB resolved
Emulators do not degrade
Selenium Hub is slow and freezes
Containers are always running
Difficult to start various Android environments
on the same host
How it should work
Selenium
API
Container
SelenoidSelenium
Container start time
5-10 sec
30-40 sec
Android Quick Boot
30-40 sec
Memory
snapshot
5-10 sec+
#1: Ready to use Android images
Custom Android skin
#2: One Android server
30 x
#3: Android Cluster
Bangalore
Mumbai
Ggr
Ggr
LB
Scaling Demo
Use the right tools!
References
https://github.com/aerokube/selenoid
https://github.com/aerokube/ggr
@aerokube
https://t.me/aerokube
https://aerokube.com/
vania-pooh@aerokube.com

More Related Content

Similar to Scalable. Reliable. Lightning fast. Running 1 000 000 tests with Selenoid.

Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
Ivan Krutov
 
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
QAFest
 
1001 reasons to use Ggr in your Selenium cluster
1001 reasons to use Ggr in your Selenium cluster1001 reasons to use Ggr in your Selenium cluster
1001 reasons to use Ggr in your Selenium cluster
Ivan Krutov
 
Selenoid: browsers in containers
Selenoid: browsers in containersSelenoid: browsers in containers
Selenoid: browsers in containers
Ivan Krutov
 
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
QAFest
 
Windows Browsers: How to Run them in Docker containers
Windows Browsers: How to Run them in Docker containersWindows Browsers: How to Run them in Docker containers
Windows Browsers: How to Run them in Docker containers
Ivan Krutov
 
Chrome Developer Tools with Selenoid
Chrome Developer Tools with SelenoidChrome Developer Tools with Selenoid
Chrome Developer Tools with Selenoid
Ivan Krutov
 
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes clusterChrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
Ivan Krutov
 
Selenium in Kubernetes: lessons learned
Selenium in Kubernetes: lessons learnedSelenium in Kubernetes: lessons learned
Selenium in Kubernetes: lessons learned
Ivan Krutov
 
test-automation-selenium-160216124839.pptx
test-automation-selenium-160216124839.pptxtest-automation-selenium-160216124839.pptx
test-automation-selenium-160216124839.pptx
SyedZaeem9
 
Selenium for Jobseekers
Selenium for JobseekersSelenium for Jobseekers
Selenium for Jobseekers
Seshu Madhav Chaturvedula
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
Karapet Sarkisyan
 
Selenium Introduction and IDE
Selenium Introduction and IDESelenium Introduction and IDE
Selenium Introduction and IDE
Murageppa-QA
 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Simplilearn
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
Nikhil Kapoor
 
auto_fails-6_year_journey_of_automation_failures
auto_fails-6_year_journey_of_automation_failuresauto_fails-6_year_journey_of_automation_failures
auto_fails-6_year_journey_of_automation_failures
ShekharRamphal
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
Amir Rozenberg
 
Easily Create Scalable Automation using Selenium
Easily Create Scalable Automation using SeleniumEasily Create Scalable Automation using Selenium
Easily Create Scalable Automation using Selenium
Micro Focus
 
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfFront-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Applitools
 

Similar to Scalable. Reliable. Lightning fast. Running 1 000 000 tests with Selenoid. (20)

Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
Oreo, Nougat, Marshmallow and Lollipop: Efficient Android testing in 2019.
 
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
QA Fest 2018. Иван Крутов. 1001 причина использовать Ggr в своем кластере Sel...
 
1001 reasons to use Ggr in your Selenium cluster
1001 reasons to use Ggr in your Selenium cluster1001 reasons to use Ggr in your Selenium cluster
1001 reasons to use Ggr in your Selenium cluster
 
Selenoid: browsers in containers
Selenoid: browsers in containersSelenoid: browsers in containers
Selenoid: browsers in containers
 
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
QA Fest 2017. Иван Крутов. Selenoid: запускаем Selenium тесты в Docker контей...
 
Windows Browsers: How to Run them in Docker containers
Windows Browsers: How to Run them in Docker containersWindows Browsers: How to Run them in Docker containers
Windows Browsers: How to Run them in Docker containers
 
Chrome Developer Tools with Selenoid
Chrome Developer Tools with SelenoidChrome Developer Tools with Selenoid
Chrome Developer Tools with Selenoid
 
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes clusterChrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
Chrome Developer Tools Protocol: Scaling and Running in Kubernetes cluster
 
Selenium in Kubernetes: lessons learned
Selenium in Kubernetes: lessons learnedSelenium in Kubernetes: lessons learned
Selenium in Kubernetes: lessons learned
 
test-automation-selenium-160216124839.pptx
test-automation-selenium-160216124839.pptxtest-automation-selenium-160216124839.pptx
test-automation-selenium-160216124839.pptx
 
Selenium for Jobseekers
Selenium for JobseekersSelenium for Jobseekers
Selenium for Jobseekers
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Selenium Introduction and IDE
Selenium Introduction and IDESelenium Introduction and IDE
Selenium Introduction and IDE
 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
 
auto_fails-6_year_journey_of_automation_failures
auto_fails-6_year_journey_of_automation_failuresauto_fails-6_year_journey_of_automation_failures
auto_fails-6_year_journey_of_automation_failures
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
 
Easily Create Scalable Automation using Selenium
Easily Create Scalable Automation using SeleniumEasily Create Scalable Automation using Selenium
Easily Create Scalable Automation using Selenium
 
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdfFront-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
 
33rd degree
33rd degree33rd degree
33rd degree
 

Recently uploaded

Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 

Recently uploaded (20)

Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 

Scalable. Reliable. Lightning fast. Running 1 000 000 tests with Selenoid.