BDD framework for automation using Selenium Cucumber and TestNg
The framework has following features
- Modular Design
- Maven based framework
- Log4j enabled for logging
- Report Generation (cucumber-reporting)
- Helper class to handle web component such as (Button,Link etc)
- Centralized Configuration (Using Properties file)
- POM
- Hooks for different browser support (using tag @chrome,@firefox...)
- Cucumber Framework https://www.youtube.com/playlist?list=PLlsKgYi2Lw73j-yB8SBzrUBpMYL1Jr3M7
- TestNg https://www.youtube.com/playlist?list=PLlsKgYi2Lw73Cs109qNoAc-V0rDnXzpAY
To use the class for handling the web component create the object and use it
GridHelper grid = new GridHelper(driver); grid.typeInGrid(item,GridLocator.cartId,1,1,qty);Add the feature file under test\resources\featurefile
Feature: Adding a laptop to the Cart @chrome Scenario: Search Laptop and add it to the cart Given : I am at the home page When : I click on the "Laptops" search filter Then : I should be at the "Laptops" search page with "35 items" And : The title should be "Laptops" search page Then : I select the "APPLE MacBook Pro Retina" with description as "15-inch, 256GB" And : Add it to the cart Then : Navigate to user details page and provide the following details | Destination | Singapore | | Airline | AirAsia | | FlightNo | A089 | | FlightDate | 24/08/2016 | | FlightTime | 5:00 | | Terminal | Terminal 1 | | FirstName | Selenium | | LastName | Java | | Email | sq@j.com | | Phone | 121212121 |use the tag @chrome to launch the specific browser or no-tag to use the browser form the config.properties file
/** * @author rahul.rathore * * 14-Aug-2016 */ package com.cucumber.framework.runner; import cucumber.api.CucumberOptions; import cucumber.api.testng.AbstractTestNGCucumberTests; @CucumberOptions(features = { "classpath:featurefile/Search.feature" }, glue = { "classpath:com.cucumber.framework.stepdefinition", "classpath:com.cucumber.framework.helper" }, plugin = { "pretty", "json:target/SearchFeatureRunner.json" }) public class SearchFeatureRunner extends AbstractTestNGCucumberTests { }<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <listeners> <listener class-name="com.cucumber.framework.listeners.reportlistener.CucumberReport" /> </listeners> <test name="Test - 1"> <classes> <class name="com.cucumber.framework.runner.SearchFeatureRunner" /> <class name="com.cucumber.framework.runner.LaptopFeatureRunner" /> <class name="com.cucumber.framework.runner.TabletFeatureRunner" /> <class name="com.cucumber.framework.runner.SearchWithFilterRunner" /> </classes> </test> </suite> mvn clean generate-sources test
There is a feature overview page:
And there are also feature specific results pages:
And useful information for failures:
If you have tags in your cucumber features you can see a tag overview:
And you can drill down into tag specific reports:




