Skip to content

GladsonAntony/SerenityExampleProject

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serenity Framework - TDD Example

N|Solid

Serenity is a tool that lets you use WebDriver-based unit or BDD tests to write more flexible and more reusable WebDriver-based tests, and also to generate documentation about your acceptance tests, including a narrative description of test, along with the corresponding screen shots, and also high-level summaries and aggregations of the test results It provides support for running tests and advanced reporting by using BDD.

The sample project defines both a Gradle and Jenkins build to show both integrations

Project Structure

└───src
    ├───main
    │   ├───java
    │   │   ├───controllers
    │   │   └───utils
    │   └───resources
    │       └───drivers
    └───test
        ├───java
        │   ├───pageObjects
        │   │   └───pages
        │   ├───steps
        │   │   ├───initializeSteps
        │   │   └───scenarioSteps
        │   └───tests
        └───resources
            └───CSV Files
|   LICENSE
|   pom.xml
|   README.md
|   serenity.properties

Maven

mvn clean verify -Dwebdriver.driver=chrome -Dwebdriver.chrome.driver=./src/main/resources/drivers/chromedriver.exe

To use default webdriver:

mvn verify

Browser Setup

File -> serenity.properties

webdriver.driver = Chrome
webdriver.chrome.driver = ./src/main/resources/drivers/chromedriver.exe
webdriver.gecko.driver = ./src/main/resources/drivers/geckodriver.exe
webdriver.edge.driver = ./src/main/resources/drivers/MicrosoftWebDriver.exe
webdriver.ie.driver = ./src/main/resources/drivers/IEDriverServer.exe

Examples

Step 1: Define Page Objects

public class GoogleHomePage extends PageObject
{	
	public GoogleHomePage(WebDriver driver) 
    {
        super(driver);
    }

    //Page Objects

    //Page Methods
}

Step 2: Define Scenario Steps

public class GoogleHomePageSteps extends ScenarioSteps
{
	private static final long serialVersionUID = 1L;
	
	public GoogleHomePageSteps(Pages pages) 
	{
		super(pages);
	}
	
	public GoogleHomePage googleHomePage() 
	{
		return getPages().currentPageAt(GoogleHomePage.class);
	}

    //Define Scenario Steps
}

Step 3: Initialize Scenario Steps

public class ScenarioStepsInitializer extends MainMethod
{	
	@Steps
	public GoogleHomePageSteps googleHomePageSteps;
	
}

Step 4: Write Tests

public class GoogleSearchPassTest extends ScenarioStepsInitializer
{
    @Test
    public void googleSearchPassTest() 
    {   	
		googleHomePageSteps
		.verifyPageTitle()
		.verifyPageElements()
		.searchFor("Naruto Uzumaki");
		googleSearchResultsSteps
		.verifyPageElements()
		.verifyPageTitle("Naruto Uzumaki");
    }
}

See example in Jenkins here.

A sample report can be viewed here.

About

This Repository explains the use of Serenity Framework in TDD Methodology.

Topics

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%