Cucumber-java入門基礎篇

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. 場景二,不帶參數,只能測試一條數據

[java] view plain copy
  1. Feature: testsuite  
  2.   
  3.   
  4.   Scenario Outline: 登錄成功測試(有多個參數)  
  5.     Given 輸入用戶名: <用戶名>  
  6.       And 輸入密碼: <密碼>  
  7.      When 點擊登錄  
  8.      Then 登錄成功  
  9.   
  10.   
  11.     Examples:   
  12.       | 用戶名   | 密碼   |  
  13.       | name1 | pwd1 |  
  14.       | name2 | pwd2 |  
  15.   
  16.   
  17.   Scenario: 登錄失敗測試(無參數)  
  18.     Given 輸入用戶名: name3  
  19.       And 輸入密碼: pwd3  
  20.      When 點擊登錄  
  21.      T  

4. steps定義

         a)       Given註解,正則表達式,用於匹配feature文件內容,實現步驟和獲取參數

         b)       When註解,動作事件步驟,表示動作行爲

         c)       Then註解,斷言

         d)       更多註解可以去,Cucumber官網文檔:https://cukes.info/docs/

[java] view plain copy
  1. </pre><pre name="code" class="java">package test;  
  2.   
  3. import cucumber.api.java.en.Given;  
  4. import cucumber.api.java.en.Then;  
  5. import cucumber.api.java.en.When;  
  6.   
  7.   
  8. public class TestCaseSteps {  
  9.     @Given("^輸入用戶名: (\\w+)$")  
  10.     public void 輸入用戶名(String 用戶名)  {  
  11.         System.out.println(用戶名);  
  12.     }  
  13.       
  14.     @Given("^輸入密碼: (\\w+)$")  
  15.     public void 輸入密碼(String 密碼)  {  
  16.         System.out.println(密碼);  
  17.     }  
  18.       
  19.     @When("^點擊登錄$")  
  20.     public void 點擊登陸()  {  
  21.         System.out.println("登陸中……");  
  22.     }  
  23.       
  24.     @Then("^登錄成功$")  
  25.     public void 登錄成功()  {  
  26.         System.out.println("登錄成功");  
  27.     }  
  28.       
  29.     @Then("^登錄失敗$")  
  30.     public void 登錄失敗() throws Exception  {  
  31.         throw new Exception("登錄失敗");  
  32.     }  
  33. }  

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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章