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: