Share our expertise in building up of highly scalable and effective infrastructure for Test Automation based on open-source solutions like Selenium and Appium by means of Docker.
We are going to show real case studies of our production challenges. Also we are going to talk about self-hosted mobile cloud solutions as part of QA ecosystem and how Docker simplifies our life in this area.
2. 1. Reasons we build private mobile clouds for our customers
2. The components of our mobile cloud
3. How Docker helps us to deploy the infrastructure in minutes and
maintain it in the future
4. Scaling web automation with Selenoid and Go Grid Router
5. Organizing infrastructure with Docker Compose
Contents
2
3. 3
• 1000+ mobile tests are run daily, results are needed ASAP
Practicability of development
• Fragmentation of devices involves tests debugging
• Mobile cloud is used by manual and automation QA engineers
• The customer has higher security requirements
• It is necessary to test the integration with IoT devices (fitness bracelets, smart clothes)
4. Lower cost if you run small amount of tests
Wider range of devices available
Solutions existing on the market
4
No possibility of remote test debugging
Need to wait in queue for free device
Security questions are solved in non-trivial way
9. 9
What’s the profit?
• ADB Server isolation
• Appium Server isolation
• Automatic start after connecting to a mobile device
• 99% of the problems with the device are solved by restarting the
container
• Configuration of new server takes less than 10 minutes
12. 12
Difficulties with Selenium
• Necessity to monitor compatibility between ChromeDriver,
Geckodriver, IEdriver and current browser version
• HDD space quickly becomes clogged with temporary files
• Extremely difficult to maintain multiple versions of the same browser
• Authorization is not supported
13. 13
What is the solution?
Selenoid (from Aerokube) is a new implementation of the Selenium
hub, which uses Docker containers to launch browsers.
• Consumes 10 times less memory than Selenium on Java
• Fully isolated environment
• Allows to save test session browser logs and videos
16. 15
Scaling
Selenium / Selenoid hubs are combined with the help of Go Grid
Router, a lightweight active load balancer used to create scalable and
highly available Selenium clusters.
17. htpasswd -bc /etc/grid-router/users.htpasswd test test-password
<qa:browsers>
<browser name="firefox" defaultVersion="45.0">
<version number="45.0">
<region name="1">
<host name="localhost" port="4445" count="1"/>
</region>
</version>
</browser>
</qa:browsers>
17
Configuration of Go Grid Router
18. 18
Docker Compose
Zafira QA reporting
The reports service component was used for
composition:
• Web application container
• PostgresDB
• RabbitMQ