TestCon Europe 2019

Ivan Krutov

Aerokube, Russia

Venue

Crowne Plaza VIlnius (M. K. Čiurlionio str. 84, Vilnius, Lithuania) or Panorama Hotel (Sodu str. 14, Vilnius).

The exact venue of each workshop will be announced on 8 October.

}

Time & Date

10:00, 15 October

Language

English

BIO

Having more than 10 years of software development experience, Ivan’s main background is related to Java and Golang programming languages. Last 5 years he works in a team that maintains software testing infrastructure for hundreds of manual and automation QA engineers. One of the tools they are working with is a big Selenium cluster running thousands of parallel browsers and platforms 24/7/365. Ivan is one of the core contributors of the Selenoid (https://github.com/aerokube/selenoid) project – a lightning fast Selenium server replacement running browsers within Docker containers.

Workshop

Efficient Selenium Infrastructure with Selenoid

Abstract

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.

Agenda
  • 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
    – 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 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
    – Difference in configuration file
    – How to run multiple isolated sessions under Windows

Objectives

The main goal of this workshop is to deploy an efficient Selenium cluster from ready-to-use open-source tools and be able to use the most important features.

Target audience

The target audience mainly includes QA automation engineers as well as service reliability engineers requiring to deploy Selenium testing infrastructure.

Technical requirements

– Software:

               – Any modern Docker version

– Technical knowledge:

               – Unix shell basics

               – Some experience with Docker

               – Basic experience with Selenium tests