1、RunCukesTest
1.2 RunCukesTest.java內容
- @RunWith(Cucumber.class)
- @CucumberOptions(
- features = {"src/test/resources/feature/"},
- format = {"pretty", "html:target/cucumber", "json:target/cucumber.json"},
- glue = {"com.cucumber"}
- )
- public class RunCukesTest {
- }
@RunWith(Cucumber.class) 這是一個運行器 ,指用Cucumber來運行測試
@ CucumberOptions中的features,用於指定我們項目中要運行的feature的目錄
@ CucumberOptions中的format,用於指定我們項目中要運行時生成的報告,並指定之后可以在target目錄中找到對應的測試報告
@ CucumberOptions中的glue,用於指定項目運行時查找實現step定義文件的目錄
2、BaiduSearchStepfs
2.1 對第一個feature的理解
該類是用代碼來實現feature中的具體定義步驟。Feature文件中,是通過一些關鍵字來定義各個步驟,如以下一些,實際過程中還包括更多的關鍵字,先看下Feature中的內容:
• Feature 隨着項目的進行會發現,所有的feature文件都是以該關鍵字開始。一般用來簡單的描述寫該feature實現什么功能。並在其下一行可以做更詳細的說明
例子:
Feature:百度搜索
打開百度進行搜索
• Background 該關鍵字目前沒用到,但是很重要。后面有機會會詳細學習下
• Scenario 該關鍵字是用來定義具體要測試的功能點,比如常見的登錄功能等
例子:
Scenario : 百度搜索selenium
• Given 是steps實現的一種,即是一個步驟,它是scenario中我們環境等所需要的條件.
例子:
Given Go to the url "http://www.baidu.com/"
• When 也是steps,表示scenario中我們執行測試例子中的某個動作等
例子:
When I find baidu logo
• And (or but) 和Given\When\Then的功能類似,如進行When,然后其他后續做某個操作時,用到該關鍵字
例子:
And Type the search text "selenium"
• Then 該關鍵字一般表示測試的預期結果,可進行斷言等
2.2 BaiduSearchStepfs.java內容
Cucumber運行時,會根據feature文件中定義的step,來查找對應的具體實現
看BaiduSearchStepfs.java文件中的方法:- @Given("^Go to the url \"([^\"]*)\"$") //1
- public void go_to_the_url(String site) throws Exception { //2
- driver = new ChromeDriver(); //3
- driver.manage().window().maximize(); //4
- driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //5
- driver.get(site); //6
- }
@Given("^Go to the url \"([^\"]*)\"$")
用來對應feature文件中的step Given Go to the url "http://www.baidu.com/"。
這里傳了一個字符串參數,用正則表達式來匹配對應的字符串
要注意,括號里面的內容,正常是以”^”開頭、”$”結尾
第2~6行則是該步驟具體的實現內容,這里是用selenium Webdriver來實現
