NTD has ended
Back To Schedule
Wednesday, June 3 • 09:00 - 17:00
Efficient Selenium Infrastructure with Selenoid

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Selenoid is an alternative lightning fast open-source Selenium protocol implementation running browsers and Android emulators inside Docker containers. It is distributed with a set of ready-to-use Docker images corresponding to the majority of popular browser versions, has a one-command installation utility and works slightly more efficiently than traditional Selenium Grid.

This tutorial shows how to build efficient and scalable browser automation infrastructure using Selenoid and related tools. You will be taught why running browsers in containers is so efficient, how to easily install Selenoid and use its powerful features.

Part I. Using Selenoid for local automated tests development
1. Selenium: 10 mins of theory. Brief Selenium history. Current WebDriver architecture. How Selenoid works and its motivation
2. Selenoid installation for tests development. What is required to start Selenoid. Selenoid installation: possible ways to do this. Selenoid UI installation and quick review
3. Basic Selenoid features: Live automated tests debugging. Recording and downloading videos of tests being executed. Manual testing in Selenoid UI. Using custom screen resolution. Using custom test name
4. Updating browsers

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 from scratch. Creating users file. Creating quota file. Starting Ggr. Running tests against Ggr.
3. Ggr Cluster Maintenance. Changing available browsers with no downtime. Adding users with no downtime. How to deal with multiple quota files. Proxying video, logs, downloaded files. Adding more Ggr instances. Health checking instances.
4. Ggr UI. How it works. Setting up and linking with Selenoid UI.

Part III. Advanced Selenoid features
1. Selenoid for Windows browsers. Possible ways to run Windows browsers with Selenoid. How to build a Docker image with Windows inside. Technical requirements of this approach.
2. Selenoid for Android platform. Android testing theory. How to build a Docker image with Android inside. Where to take ready to use Android image. Technical requirements of this approach.
3. Advanced browsers configuration file fields. Volumes Environment variables. Tmpfs Hosts entries. ShmSize.
4. Sending logs to centralized logs storage. Why? Centralized logging storages. How to configure Selenoid to send logs.
5. Sending statistics to centralized metrics storage/status. API Configuring. Telegraf to upload statistics. Creating statistics dashboard with Grafana.
6. Sending logs to centralized logs storage (ELK-stack). What is ELK stack? Configuring Selenoid to send logs to ELK-stack. Searching across logs.
7. Building custom browser images. What's inside browser image. Ready to use browser images. How to build custom image.

Key Takeaways:
  • Why Selenium should always be run in Docker containers. 
  • How to forget about Selenium issues with Selenoid.
  • How to efficiently scale Selenium cluster to easily have thousands of browsers running in parallel.
  • Where to take ready to use browser images and how to build your own.
  • How to use powerful browser tests debugging features in Selenoid. 

avatar for Ivan Krutov

Ivan Krutov

Software Developer, Aerokube
Ivan has 10+ years of experience in Golang and Java development. He has maintained large-scale software testing infrastructure more than 6 years  and he is a core maintainer of Selenoid, Ggr, Moon and other Aerokube projects.

Wednesday June 3, 2020 09:00 - 17:00 EEST