一分鐘認識:Cucumber框架

一分鐘認識:Cucumber框架(一)

轉自:https://www.cnblogs.com/dami520/p/3168864.htmlhtml

我的感受這個框架很是適合UI自動化測試,他不只能把用例中的測試步驟以很是友好的形式展示出來,並且可以很是靈活的構建場景;ios

1、簡介

  • Cucumber 是一個可以理解用普通語言 描述的測試用例的行爲驅動開發(BDD)的自動化測試工具,用Ruby**編寫,支持Java和·Net等多種開發語言。git

  • Cucumber可讓人們用近似天然的語言去描述Feature和場景,根據Feature驅動開發。用做軟件技術人員和非技術之間驗收測試的橋樑。它是一個命令行工具。運行後,會執行features中的內容。feature中的step會調用stepdefinitions(Ruby代碼)能夠用標籤來組織場景支持40多種語言高質量集成Rubygithub

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的開發過程

  • 建立feature文件,包括feature,scenarios和step。
  • 建立step_definitions,即RUBY代碼並實現。若是隻有step,沒有step definitions,會報undefined錯。Ruby寫法:Given /^the input "([^"]*)"$/ do |arg1|。運行feature,控制檯中會輸出RUBY的實現方法,只要實現step_definitions便可。
  • cucumber --format progress。格式化輸出。可修改成html,xml等格式輸出。
  • 添加斷言:
  • 一個場景失敗,Cucumber將此場景標記失敗,轉去執行下一場景。
  • 一個step失敗,會跳過這個scenario的其他step,從而終止這個scenario。

七. Gherkin方法:

  • 關鍵字:
  • Feature
  • Background
  • Scenario
  • Scenario Outline
  • Scenarios(or Examples)
  • Given
  • When
  • Then
  • And(or But)
  • |(用來定義表格)
  • """(定義多行字符串)
  • # (註釋)

5、示例代碼

點擊查看[https://github.com/maxuechaogao/demo-cucumber.git]測試

相關文章
相關標籤/搜索