Cloud Testing is a means of testing cloud-based applications using resources provided by the cloud. By resources, we mean any element (hardware, software, and infrastructure) necessary to carry out the tests. Cloud testing provides an end-to-end solution that transforms the way testing is done and can help an organization gain competitiveness by reducing the cost of testing without impacting mission-critical applications. By leveraging cloud computing services for testing, organizations can shorten the provisioning time because the cloud enables provisioning of test servers on demand. This ensures unused servers are not sitting idle. Generally, more than 80% of the validation processes are repetitive, with testers performing the same testing steps manually in each new build.
Why Selenium Cloud Testing?
Selenium is among the popular cloud testing tools because it enables flexibility and perfection. It is compatible with a wide variety of browsers and offers great flexibility to write test scripts. Selenium provides robust support to a variety of programming languages including C#, Java, Python, and Ruby. Even with the basic knowledge of any of this language is enough to work with Selenium.
Benefits of Selenium Testing Tool:
- Cost-effective: It is an open source tool
- Language: Supports many languages like Java, Ruby, Python, and C#
- Browser: Supports multiple browsers like IE, Mozilla, Opera, Chrome, and Safari — which supports cross-browser testing and can be easily integrated into the newly launched browser
- Framework: Supports multiple frameworks like Junit, TestNG, Bromine, Nunit, Rspec which make the automation more robust and can develop its own framework
- Operating System: Supports multiple operating systems like Windows, Mac, Linux
- Time-Saving: With the help of the selenium grid, parallel execution of the test cases can be done
Cloud Automation Testing Using Selenium
Today’s software applications are mostly web-based and with the cloud infrastructure, it is gaining prominence. They are mostly deployed on cloud servers. Selenium is unarguably the most widely used open source solution to meet the needs of your testing project. It can be successfully used with cloud services to test web apps across multiple browsers and platforms. Selenium interacts with web browsers to test actions, inputs, and expected outcomes and thereby it improves device and platform coverage.
VOLANSYS Automation Framework for Cloud Testing
The automation framework is a strategy for automation. It provides a structured way of obtaining quality work with quantity and effectiveness. There are many predefined frameworks in Selenium like JUnit, TestNG, NUnit, etc.
VOLANSYS has carried out a comprehensive analysis of different Selenium automation frameworks and found that none of them offered a complete benefit. Hence, VOLANSYS has developed a Data-Driven Framework to provide an end to end solution for cloud automation testing.
VOLANSYS Selenium Data Driven Framework Approach
VOLANSYS Selenium Data Driven Framework is an implementation of function modularization and abstraction layer. It’s an excel based automation framework that consists of 3 layers:
- External Layer (Test Case Layer)
- Application Function Layer ( It consists of application-related functions)
- Framework Layer (It consists of core framework functions)
In VSDDF, all the test cases will reside in the external layer and call the function from Application Function Layer and it will invoke the framework layer function. This framework is excel based and all test cases and test data will reside in a single excel file which makes this framework easier to manage. The user can choose test cases that they want to execute from Excel file and can provide their test data into this excel.
In VSDDF, we have kept all object repositories to property files which can be read at the runtime so it’s easy to maintain element locators. Similarly, there is a property file for configuration related data.
We have integrated this VSDDF with the continuous integration tool Jenkins and Source Code Management tool Bit Bucket (Git).
Features of VOLANSYS Selenium Data Driven Framework
- Works extremely powerful with different browsers such as Mozilla, Chrome, and Opera, etc.
- VSDDF is a maven based framework so the user need not worry about dependency management
- Execution can be triggered at one click either from Jenkins/locally
- Execution can be triggered automatically using Jenkins when any changes are done on BitBucket/Git code
- VSDDF provides a feature for uploading test result to Test Rail (Test Management tool) using TestRail APIs
- Detailed report generation includes application logs, line and bar graphs, platform details, and test execution details such as the number of passes, the number of fails, total Test cases, each test case with line by line test steps, screenshot at the time of failure, etc.
Benefits of Selenium Data Driven Framework
- Since scripting is done with Excel, it is simple and easy to create test cases. Even a manual tester can write test cases once he knows about customized methods and how to trace elements from the application
- Manual test cases and Automation test cases can be maintained in the same sheet
- Highly productive and scalable
- Cost-effective since it reduces man efforts
Challenges Faced During Implementation
- The web application is built using AngularJS so the majority of the time we were not able to get unique locators
- Extracting data from web-table was difficult due to the developer had implemented slick-grid for lazy loading
- Some of the element was not getting identified at run time because it was created at runtime with dynamic locator values
- Data Import related test scripts were getting failed due to interactions with windows pop up
- There are test cases failure due to radio button selection was not working as the developer has made the radio button in such a way that selection was not permitted
- Selenium Test Scripts were taking too much time to run it
VOLANSYS Solutions for Challenges
- Extracting data from Slick-grid: We used slick functions and java scripts to extract data from web-table
- Dynamic Elements: We used regex, ancestor and sibling techniques to identify such elements
- Data Import failures: We used Auto IT/Robot class to deal with windows pop up
- Selenium script performance issue: For this problem, we have done lots of R&D and implemented the below things to improve performance
- Executing a test script that will check data dependency only once and resolve it
- We have used fast locator wherever possible
- We have grouped test cases according to business functionality
- We have eliminated static wait wherever possible
- We have changed test execution flow and significantly improved execution timings
Originally Published at : https://www.volansys.com/blog/cloud-test-automation-using-selenium/