Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dockerization of real mobile device farm and sc...

Dockerization of real mobile device farm and scalable QA automation ecosystem

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.

Avatar for hursevich

hursevich

March 06, 2018

Other Decks in Technology

Transcript

  1. 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
  2. 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)
  3. 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
  4. Selenium infrastructure Zafira QA reporting Sonarqube Code Analysis OpenSTF Device

    Farm CI Infrastructure Jenkins Master Jenkins Slave Plugins Security Job DSL Java 8 Apache Maven Android Tools 8 QPS infrastructure
  5. 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
  6. 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
  7. 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
  8. 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.
  9. 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
  10. 18 Docker Compose Zafira QA reporting The reports service component

    was used for composition: • Web application container • PostgresDB • RabbitMQ