1. CucumberFW
2. src/test
3.1 java
di
ScnCntxt.java
| package di; | |
| import org.openqa.selenium.WebDriver; | |
| import cucumber.api.Scenario; | |
| import po.PO_Cmn; | |
| public class ScnCntxt { | |
| public WebDriver DRIVER; | |
| public PO_Cmn PO_CMN; | |
| public Scenario SCN; | |
| } |
po
PO_Cmn.java
| package po; | |
| import java.util.List; | |
| import org.junit.Assert; | |
| import org.openqa.selenium.By; | |
| import org.openqa.selenium.WebDriver; | |
| import org.openqa.selenium.WebElement; | |
| import org.openqa.selenium.support.FindBy; | |
| import org.openqa.selenium.support.How; | |
| public class PO_Cmn { | |
| WebDriver driver; | |
| public PO_Cmn(WebDriver driver) { | |
| this.driver = driver; | |
| } | |
| //Locators | |
| @FindBy(how=How.NAME,using="hint_q") | |
| private WebElement txtbx_search; | |
| @FindBy(how=How.XPATH,using="//button[@title='Search']") | |
| private WebElement btn_search; | |
| @FindBy(how=How.XPATH,using="//img[starts-with(@id,'det_img_')]") | |
| private List<WebElement> collection; | |
| //Setters Methods | |
| private void SetSearchTextBox(String arg) { | |
| txtbx_search.sendKeys(arg); | |
| } | |
| private void ClickSearchButton() { | |
| btn_search.click(); | |
| } | |
| //Business Method | |
| public void SearchProduct(String arg) { | |
| SetSearchTextBox(arg); | |
| ClickSearchButton(); | |
| } | |
| //Validation Method | |
| public void ValidateSearchIsWorking() { | |
| //Validation 1 | |
| String expected="Search results"; | |
| String actual=driver.getTitle(); | |
| Assert.assertEquals("Page Title Validation", expected, actual); | |
| //scn.write("Page Title is Validated. Expected: " + expected + " actual: "+ actual); | |
| //Validation 2 | |
| List<WebElement> collection = driver.findElements(By.xpath("//img[starts-with(@id,'det_img_')]")); | |
| if (collection.size()>0) { | |
| Assert.assertTrue(true); | |
| //scn.write("Search Results are displayed. Search Products Count: " + collection.size()); | |
| }else { | |
| //scn.write("Search Results are displayed. No products are returned"); | |
| Assert.assertTrue(false); | |
| } | |
| } | |
| } |
runner
RunTest.java
| package runner; | |
| import org.junit.runner.RunWith; | |
| import cucumber.api.CucumberOptions; | |
| import cucumber.api.junit.Cucumber; | |
| @RunWith(Cucumber.class) | |
| @CucumberOptions | |
| ( features="classpath:features", | |
| glue="", | |
| tags="", | |
| plugin = {"pretty", | |
| "html:target/html/", | |
| "json:target/json/file.json", | |
| "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"}, | |
| dryRun=false | |
| ) | |
| public class RunTest { | |
| } | |
| /* | |
| * plugin = {"pretty", | |
| "html:target/cucumber1", | |
| "json:target/cucumber1.json", | |
| "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"}, | |
| */ |
stepdefs
StepDefs_Search.java
| package stepdefs; | |
| import static org.junit.Assert.assertEquals; | |
| import java.util.List; | |
| import java.util.concurrent.TimeUnit; | |
| import org.junit.Assert; | |
| import org.openqa.selenium.By; | |
| import org.openqa.selenium.WebDriver; | |
| import org.openqa.selenium.WebElement; | |
| import org.openqa.selenium.chrome.ChromeDriver; | |
| import org.openqa.selenium.support.PageFactory; | |
| import cucumber.api.Scenario; | |
| import cucumber.api.java.Before; | |
| import cucumber.api.java.en.Given; | |
| import cucumber.api.java.en.Then; | |
| import cucumber.api.java.en.When; | |
| import di.ScnCntxt; | |
| import po.PO_Cmn; | |
| import utils.Cmn; | |
| //Task: Add Assert J lib/assertion | |
| public class StepDefs_Search { | |
| ScnCntxt context; | |
| public StepDefs_Search(ScnCntxt cntxt) { | |
| this.context = cntxt; | |
| } | |
| @When("I Search the Product {string}") | |
| public void search_product(String arg) { | |
| context.PO_CMN.SearchProduct(arg); | |
| context.SCN.write("Product name entered as " + arg + " and search button clicked"); | |
| } | |
| @Then("Page is navigated to Search Page") | |
| public void page_is_navigated_to_Search_Page() { | |
| context.PO_CMN.ValidateSearchIsWorking(); | |
| } | |
| } |
StepDefs_SetUp.java
| package stepdefs; | |
| import static org.junit.Assert.assertEquals; | |
| import java.util.List; | |
| import java.util.concurrent.TimeUnit; | |
| import org.junit.Assert; | |
| import org.openqa.selenium.By; | |
| import org.openqa.selenium.WebDriver; | |
| import org.openqa.selenium.WebElement; | |
| import org.openqa.selenium.chrome.ChromeDriver; | |
| import org.openqa.selenium.support.PageFactory; | |
| import cucumber.api.Scenario; | |
| import cucumber.api.java.Before; | |
| import cucumber.api.java.en.Given; | |
| import cucumber.api.java.en.Then; | |
| import cucumber.api.java.en.When; | |
| import di.ScnCntxt; | |
| import po.PO_Cmn; | |
| import utils.Cmn; | |
| //Task: Add Assert J lib/assertion | |
| public class StepDefs_SetUp { | |
| ScnCntxt context; | |
| public StepDefs_SetUp(ScnCntxt cntxt) { | |
| this.context = cntxt; | |
| } | |
| @Before | |
| public void beforeMethodSetUp(Scenario s) { | |
| context.SCN = s; | |
| } | |
| @Given("I open a {string} browser") | |
| public void i_open_a_browser(String browser) { | |
| context.DRIVER = Cmn.getBrowser(browser); | |
| context.PO_CMN = PageFactory.initElements(context.DRIVER, PO_Cmn.class); | |
| } | |
| @Given("I navigate to URL {string}") | |
| public void i_navigate_to_URL(String url) { | |
| Cmn.NavigateToUrl(context.DRIVER, url); | |
| context.SCN.write("User Navigated to url: " + url); | |
| } | |
| } |
utils
Cmn.java
| package utils; | |
| import java.util.concurrent.TimeUnit; | |
| import org.openqa.selenium.WebDriver; | |
| import org.openqa.selenium.chrome.ChromeDriver; | |
| public class Cmn { | |
| public static WebDriver getBrowser(String browser) { | |
| WebDriver driver=null; | |
| if (browser.equalsIgnoreCase("chrome")) { | |
| driver = new ChromeDriver(); | |
| //scn.write("Chrome Browser is opened"); | |
| }else if (browser.equalsIgnoreCase("firefox")) { | |
| //driver = new FireFox(); | |
| //scn.write("FireFox Browser is opened"); | |
| } | |
| driver.manage().timeouts().implicitlyWait(20000, TimeUnit.MILLISECONDS); | |
| return driver; | |
| } | |
| public static void NavigateToUrl(WebDriver driver,String url) { | |
| driver.get(url); | |
| } | |
| } |
3.2 resources
features
HealthCheck.feature
| @tag | |
| Feature: Healtch Check Script for CSCart App | |
| I will navigate the App till Search | |
| @tag1 | |
| Scenario: Navigating the CSCart App till Search | |
| Given I open a "chrome" browser | |
| And I navigate to URL "http://demo.cs-cart.com/stores/e1c181e71211f4d1/" | |
| When I Search the Product "computer" | |
| Then Page is navigated to Search Page | |
| #When I enter text "computer" in Search Box | |
| #And I click on Submit Button |
bdd-config.xml
extent.properties
html-config.xml




No comments:
Post a Comment