One of the top workshops from the group:
[EN]
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 workshop 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.
[RU]
Selenoid – это альтернативная молниеносно быстрая реализация протокола Selenium с открытым исходным кодом, запускающая браузеры и эмуляторы Android внутри контейнеров Docker. Он распространяется с набором готовых к использованию образов Docker, соответствующих большинству популярных версий браузера, имеет утилиту установки с одной командой и работает несколько эффективнее, чем традиционная Selenium Grid.
На этом мастер-классе (workshop) будет рассказано, как построить эффективную и масштабируемую инфраструктуру автоматизации браузера с помощью Selenoid и связанных с ним инструментов. Вы изучите почему запуск браузеров в контейнерах настолько эффективно, и как легко установить Selenoid и использовать его мощные функции.
Целевая аудитория:
- Веб-разработчики
- Инженеры по автоматизации тестирования
Вы научитесь:
- Устанавливать и запускать Selenoid
- Работать с базовыми функциями Selenoid
- Создавать и сопровождать Selenoid кластер
- Настраивать Ggr
- Использовать продвинутые функции Selenoid для больших кластеров
Agenda
Part I. Using Selenoid for local automated tests development
- Selenium: 20 mins of theory
- Brief Selenium history
- Current WebDriver architecture
- How Selenoid works
- Selenoid installation for tests development
- What is required to start Selenoid
- Selenoid installation: possible ways to do this
- Selenoid UI installation and quick review
- 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
- Using Chrome Developer Tools
- Updating browsers
Part II. Creating Selenium cluster
- 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
- Setting up Ggr
- Creating users file
- Creating quota file
- Starting Ggr
- Running tests against Ggr
- 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
- Ggr UI
- How it works
- Setting up and linking with Selenoid UI
Part III. Advanced Selenoid features for big clusters
- 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
- 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
- Advanced browsers configuration file fields
- Volumes
- Environment variables
- Tmpfs
- Hosts entries
- ShmSize
- Sending logs to centralized logs storage
- Why? Centralized logging storages
- How to configure Selenoid to send logs
- Sending statistics to centralized metrics storage
- /status API
- Configuring Telegraf to upload statistics
- Creating statistics dashboard with Grafana
- Sending logs to centralized logs storage (ELK-stack)
- What is ELK stack
- Configuring Selenoid to send logs to ELK-stack
- Searching across logs
- Building custom browser images
- What’s inside browser image
- Ready to use browser images
- How to build custom image