標籤:cucumber bdd 入門
最近公司提倡快速測試,之前ui介面自動化實在是不穩定且執行很慢,總會出現很多莫名奇妙的問題……
快速測試前提,是web響應裡面只含json格式(其實xml格式也行)資料,達到html與資料分離,
這樣就提供很大便利,資料校正很容易,也更加精確,持續整合更快速,更精確定位問題。
大家熱情很高,用到的工具很多,
選好工具成功一大半,工具多了也發愁
下面就標題介紹下Cucumber的使用基礎
1. 安裝Cucumber請點擊,http://blog.csdn.net/musen518/article/details/45363911
2. Cucumber案例結構
a、定義features,案例集,用於描述多個情境(案例),主要由測試人員編寫維護
b、定義steps,步驟定義,實現真實測試action,可以是測試人員或開發人員編寫維護
3. features檔案,
下麵包含兩個案例(情境=案例)
i. 情境一,帶參數且多個資料驅動測試
ii. 情境二,不帶參數,只能測試一條資料
Feature: testsuite Scenario Outline: 登入成功測試(有多個參數) Given 輸入使用者名稱: <使用者名稱> And 輸入密碼: <密碼> When 點擊登入 Then 登入成功 Examples: | 使用者名稱 | 密碼 | | name1 | pwd1 | | name2 | pwd2 | Scenario: 登入失敗測試(無參數) Given 輸入使用者名稱: name3 And 輸入密碼: pwd3 When 點擊登入 T
4. steps定義
a) Given註解,Regex,用於匹配feature檔案內容,實現步驟和擷取參數
b) When註解,動作事件步驟,表示動作行為
c) Then註解,斷言
d) 更多註解可以去,Cucumber官網文檔:https://cukes.info/docs/
</pre><pre name="code" class="java">package test;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class TestCaseSteps { @Given("^輸入使用者名稱: (\\w+)$") public void 輸入使用者名稱(String 使用者名稱) { System.out.println(使用者名稱); } @Given("^輸入密碼: (\\w+)$") public void 輸入密碼(String 密碼) { System.out.println(密碼); } @When("^點擊登入$") public void 點擊登陸() { System.out.println("登陸中……"); } @Then("^登入成功$") public void 登入成功() { System.out.println("登入成功"); } @Then("^登入失敗$") public void 登入失敗() throws Exception { throw new Exception("登入失敗"); }}
4. 執行案例
a) 通過eclipse外掛程式執行,必須安裝Eclipse cucumber外掛程式
選擇feature檔案,點擊右鍵Run as,選擇Cucumber feature\
b) 通過junit執行,需要載入依賴,這種方式無需安裝Cucumbereclipse外掛程式(testng類似)
i. cucumber-junit-1.2.2.jar
ii. hamcrest-core-1.3.jar
iii. junit-4.12.jar
Cucumber-java入門基礎篇