Our Approach For Test Automation with Selenium
Our Framework at Ray Business Technologies Pvt Ltd, is the combination of TestNG, Modular-Driven, Page Object and TestNG, Data-Driven Model. To automate the application when requirements get changes very frequently, there are always few hurdles in the Agile methodology. We have designed this Hybird Framework in order to suppress. We can handle them easily by changing the page objects though the requirements has changes by using this framework.
TestNG is a testing framework that helps in overcoming the limitations of another popular framework related to testing called JUnit. "NG" means " Next Generation". Because of its advantages most Selenium users use this more than JUnit. We will focus on the most important ones that we can use in Selenium as there are so many features of TestNG.
Lets discuss about the features of TestNG:
- Support for parameterization
- Support for Data Driven Testing using Data providers
- Support for annotations
- Enables user for the test methods to set execution priorities
- Readily supports integration with plug-ins like build tools (Ant, Maven etc) and with various tools, Integrated Development Environment (Eclipse).
A Data-Driven Framework is where test input and output values are read from data files (Csv files, Excel files) and are loaded into variables in captured or manually coded scripts. In this framework, variables are used for both input values and output verification values. Navigation through the program, reading of the data files.
Modular Driven Framework
Modular Driven Framework involves creation of small, independent scripts that represent the sections, modules and functions of the application-under-test (AUT). To realize specific business scenarios, these scripts are then used to construct larger tests.
Page Object Model
Within your Selenium tests Page Object Model introduces an abstraction layer and it provides a programmatic API to interact and drive with a UI. It makes automation maintainable and readable. Each page of your (Application Under Test) AUT is mapped to a class file in your code and each method within the class file that can be treated as a service offered by page objects. Page Object's main advantage is that if the UI changes for any page, we just need to change only the code within the page objects (Only at one place) and it don't require us to change any tests.
- To test large date less time is needed
- Architectural design that is well defined
- Web services/API Testing is possible.
- Database Testing is possible.
- Integration of other tools like PhantomJS or CasperJS is simple.
- Can integrate BDD frameworks like Cucumber-JVM is easy.
- Integration of CI tool (Jenkins) is simple.
- Robust and stable due to error and exception handling.
- Easy debugging and script maintenance
- Communication of results
- Easier, faster and efficient analysis of result logs
- Script execution in multiple environments