Create a Sample Maven Project and add below dependencies to POM.xml
<!-- for Selenium --> <dependency> <groupid>org.seleniumhq.selenium</groupid> <artifactid>selenium-java</artifactid> <version>3.0.0</version> </dependency> <!-- for Cucumber --> <dependency> <groupid>info.cukes</groupid> <artifactid>cucumber-java8</artifactid> <version>1.2.5</version> <scope>test</scope> </dependency> <dependency> <groupid>info.cukes</groupid> <artifactid>cucumber-junit</artifactid> <version>1.2.5</version> <scope>test</scope> </dependency> <dependency> <groupid>info.cukes</groupid> <artifactid>cucumber-picocontainer</artifactid> <version>1.2.5</version> <scope>test</scope> </dependency> <!-- for JUnit--> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.12</version> <scope>test</scope> </dependency>
Create Sample feature file LoginTest.feature
Feature: Login Test @login Scenario: Successful Login with Valid Credentials Given User is on Home Page When User Navigate to Test Page And User enters UserName and Password Then Verify Login Successful message
Create step definition file
package com.selcukes.steps; import java.util.concurrent.TimeUnit; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.api.java8.En; public class LoginStepdefs implements En { public static WebDriver driver; public LoginStepdefs() { Given("^User is on Home Page$", () -> { System.setProperty("webdriver.gecko.driver", "src/main/resources/geckodriver.exe"); driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("http://techyworks.blogspot.in/"); String strPageTitle = driver.getTitle(); System.out.println("Page Title:" + strPageTitle); }); When("^User Navigate to Test Page$", () -> { driver.findElement(By.xpath("//*[@href='/p/test.html']")).click(); }); When("^User enters UserName and Password$", () -> { driver.findElement(By.id("log")).sendKeys("Techy"); driver.findElement(By.id("pwd")).sendKeys("Works"); driver.findElement(By.id("login")).click(); }); Then("^Verify Login Successful message$", () -> { Assert.assertEquals("Login Successful..",driver.findElement(By.id("response")).getText()); driver.quit(); }); } }
Create a runner class file
package com.selcukes.runners; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @CucumberOptions(plugin = { "html:target/cucumber-results/cucumber-html-report", "json:target/cucumber-results/cucumber.json", "usage:target/cucumber-results/cucumber-usage.json" }, monochrome = true, features = "src/test/resources/features/", glue = { "com.selcukes.steps" }, tags = { "@login" }) @RunWith(Cucumber.class) public class LoginTestRunner { }
0 Comments