Cucumber 入門【轉】

原文出自: http://www.51testing.com/html/17/15039717-2426501.htmlhtml

1、簡介  ios

  • Cucumber 是一個可以理解用普通語言 描述的測試用例的行爲驅動開發(BDD)的自動化測試工具,用Ruby編寫,支持Java和·Net等多種開發語言。
  • Cucumber可讓人們用近似天然的語言去描述Feature和場景,根據Feature驅動開發。
  • 用做軟件技術人員和非技術之間驗收測試的橋樑。
  • 它是一個命令行工具。運行後,會執行features中的內容。feature中的step會調用step definitions(Ruby代碼)
  • 能夠用標籤來組織場景
  • 支持40多種語言
  • 高質量集成Ruby
2、Cucumber三大組成
Features、Step_definitions、Cucumber command。
 
 
對應傳統測試工具:
Feature (功能)test suite (測試用例集)
Scenario(情景)test case (測試用例)
Given(給定)setup(建立測試所需環境)
When(當)test(觸發被測事件)
Then(則)assert(斷言,驗證結果)
 
工做原理:
 
 
 
3、Features
語法規則:基於Gherkin。支持語言:# language: en     (zh-CN)等
Features文件必須以.features命名。
包含title,多個scenarios,每一個scenario包含多個step。
Step定義必須以關鍵字Given,When,Then,And開始。
 
 
 
4、Step_definitions
根據feature文件中定義的step編寫對應的測試代碼。
 
5、Cucumber command
運行:*.feature文件。cucumber會分析feature文件中定義的step,而後去step definitions尋找相匹配的step,執行step中的代碼。
運行結果以html的形式保存,fail的狀況查看對應log日誌
 
6、Cucumber的開發過程
a.    建立feature文件,包括feature,scenarios和step。
b.   建立step_definitions,即RUBY代碼並實現。若是隻有step,沒有step definitions,會報undefined錯。Ruby寫法:Given /^the input "([^"]*)"$/ do |arg1|。運行feature,控制檯中會輸出RUBY的實現方法,只要實現step_definitions便可。
c. cucumber --format progress。格式化輸出。可修改成html,xml等格式輸出。
添加斷言:  
一個場景失敗,Cucumber將此場景標記失敗,轉去執行下一場景。
一個step失敗,會跳過這個scenario的其他step,從而終止這個scenario。
 

6.    Gherkin方法:git

a.    關鍵字:github

•Backgroundjvm

• Scenario工具

• Given測試

• Whenui

• Thenspa

• And命令行

• But

• *

• Scenario Outline

• Examples

2. 編譯feature文件:$ cucumber test.feature --dry-run

3. 日誌說明:黃色-未定義step。綠色-經過。紅色-報錯。

7.    Scenario:第個功能約有五到二十個場景。 

8.    Cucumber集成Java資料:

https://github.com/cucumber/cucumber-jvm

相關文章
相關標籤/搜索