http://blog.csdn.net/musen518/article/details/45365811
最近公司提倡快速測試,之前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註解,正則表達式,用於匹配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