本项目是以 Java(1.8) + gradle + junit 作为cucumber的驱动框架
一、添加依赖
compile group: 'info.cukes', name: 'cucumber-java', version: '1.2.5'
compile group: 'info.cukes', name: 'cucumber-junit', version: '1.2.5'
二、编写cucumber用例
我们在resources目录下新建features目录,在features目录下新建 Login.feature 文件
Feature: System Signin
Scenario: Signin System Successful
Given At Signin Page https://best.fei.com/login
When I use email best.fei@goodboy.com , password Heisagoodman to signin
Then The page goes to welcome page https://best.fei.com/welcome
Scenario: Signin System failed
Given At Signin Page https://best.fei.com/login
When I use email best.fei@goodboy.com , password Heisabadman to signin
Then The page goes to Signin page https://best.fei.com/login
三、在main目录下新建包名bdd,在bdd下新建2个包名features和runner
四、写操作步骤
在features下新建SignFeatures
package com.uiTest.bdd.features;
import com.uiTest.pageActions.BasePageAction;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
public class BeSignFeatures {
WebDriver driver = new ChromeDriver();
@Given("At (\\S*) Page (\\S*)$")
public void goToBeSigninPage(String pageName, String url) {
driver.get(url);
}
@When("^I use email (\\S*) , password (\\S*) to signin$")
public void beSignin(String email, String password) {
driver.findElement(By.className("email")).sendKeys(email);
driver.findElement(By.className("password")).clear();
driver.findElement(By.className("password")).sendKeys(password);
driver.findElement(By.className("signin")).click();
}
@Then("The page goes to (\\S*) page (\\S*)$")
public void checkResult(String pageName, String url) {
BasePageAction basePageAction = new BasePageAction(driver);
basePageAction.sleepTime(2000);
String currentUrl = driver.getCurrentUrl();
Assert.assertEquals(currentUrl,url);
basePageAction.sleepTime(1000);
basePageAction.closeBrowser();
}
}
五、编写Runner类
新建SigninRunner类,配上cucumber用例的目录
package com.uiTest.bdd.runner;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(monochrome = true,
features = "src/main/resources/features/")
public class BeSigninRunner {
}
最后,运行cucumber用例 Login.feature 文件即可
网友评论