Have something to share about Test Automation or WebDriver?
Become a speaker now

Efficient Selenium Infrastructure


February 21th, 2019

9:30 - 18:30




Target audience

Test automation engineers, developers

This workshop shows how to build efficient and scalable browser automation infrastructure using new tools: Selenoid and Ggr. You will be taught why running browsers in containers is so efficient, how to easily install Selenoid for local development and then create a fault-tolerant cluster with Ggr load-balancer.

To attend this class it is recommended to have some experience with Selenium, Linux shell and Docker. We also expect to have Docker installed on your computer and have some example Selenium tests to run.

Part I. Local browser tests development

1) Selenium: 20 mins of theory
– Brief Selenium history
– Current WebDriver architecture
– How Selenoid works
2) Selenoid installation for tests development
– What is required to start Selenoid
– Manual installation: creating config file, pulling browser images, starting Selenoid
– Shorter way: fully automated installation via CM tool
– Selenoid UI installation and features
3) Basic Selenoid features:
– Custom screen resolution
– Looking at live browser screen
– Recording and downloading video
– Custom test name
4) Updating browsers
– Automatically
– Manually

Part II. Creating Selenium cluster

1) Selenium clusters theory
– Why Selenium Grid is not suitable
– Client-side load balancing
– Server-side load-balancing
– How to share state. Session ID magic
– Ggr server. How it works
2) Setting up Ggr
– Creating users file
– Creating quota file
– Starting Ggr
– Running tests against Ggr
3) Cluster Maintenance
– Changing available browsers with no downtime
– Adding users with no downtime
– How to deal with multiple quota files
– Proxying to external commercial Selenium services
– Adding more Ggr instances. Health checking instances

Part III. Advanced Selenoid features for big clusters

1) Advanced browsers configuration file fields
– Volumes
– Environment variables
– Tmpfs
– Hosts entries
– ShmSize
2) Sending logs to centralized logs storage
– Why? Centralized logging storages
– How to configure Selenoid to send logs
3) Sending statistics to centralized metrics storage
– /status API
– Configuring Telegraf to upload statistics
– Creating statistics dashboard with Grafana
4) Building custom browser images
– What’s inside browser image
– Ready to use browser images
– How to build custom image
5) Selenoid for Windows browsers
– How it works without Docker
– Difference in configuration file
– How to run multiple isolated sessions under Windows

Ivan Krutov

Ivan Krutov

Developer at Aerokube, Russia

More than 10 years of Java и Golang development experience. Working with large-scale Selenium infrastructure more than 5 years. Selenoid project core maintainer.