Case Study: SkyToll – Automation of Selenium Grid Environment Setup
How we transformed sequential testing to parallel by replacing a single Selenium instance with a distributed Grid and automating deployment on MS Azure using Infrastructure as Code approach.
About the Project
For SkyToll company, we designed and implemented a transition from a single Selenium instance to a scalable Selenium Grid. The project involved designing a distributed architecture on MS Azure, creating automated scripts for deployment using Infrastructure as Code approach, and migrating existing PHP test scripts from a single-instance to parallel grid environment.
Current State (AS-IS)
- Testing was performed in a single Selenium instance with sequential test execution
- Limited testing capacity without parallelization capability
- Lack of scalable infrastructure for distributed testing
- Dependency on a single test node without redundancy
Implemented Solution
- Distributed platform: Transition to Selenium Grid with parallel testing capability
- Infrastructure as Code: Automated scripts for reproducible deployment of entire grid infrastructure
- Test parallelization: Transformation from sequential testing to parallel execution
- Cloud-native approach: Utilization of Azure services for optimal scalability
Technical Solution
Deployment and Infrastructure
- Cloud-native solution: Deployment on MS Azure
- Automated deployment: Ansible scripts for completely automated grid infrastructure creation
- Scalable architecture: Hub-node topology enabling dynamic addition of test nodes
- Parallel execution: Capability for concurrent execution of multiple tests across nodes
Integrations and Tools
- Selenium Grid: Central coordination of distributed testing instead of single instance
- PHP scripts: Migration of existing test scripts for grid architecture with parallelization support
- MS Azure: Cloud platform for hosting and scaling
- Ansible: Infrastructure as Code for automated deployment of entire infrastructure
- DevOps tools: Automation of deployment processes
Results and Benefits
Operational Advantages
- Parallel testing: Capability for parallel execution of multiple tests simultaneously
- Scalability: Ability to dynamically add test nodes as needed
- Increased capacity: Elimination of single Selenium instance bottleneck
- Redundancy: Elimination of dependency on single test node
- Rapid deployment: Automated scripts enable quick creation of new grid environment
Technical Benefits
- Distributed platform: Transition from monolithic to distributed testing architecture
- Reproducibility: Infrastructure as Code ensures consistent deployment
- Cloud benefits: Utilization of Azure services for optimal performance and cost efficiency
Result: SkyToll obtained a modern, scalable testing environment with parallel test execution capability, which dramatically accelerated the entire testing process and increased capacity without dependency on a single node.