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

個人感覺這個框架非常適合UI自動化測試,他不僅能把用例中的測試步驟以非常友好的形式展現出來,而且能夠非常靈活的構建場景;

一、簡介

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

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

二、Cucumber三大組成

  • 組成
    Features、Step_definitions、Cucumber command。
結構圖
  • 對應傳統測試工具:
    Feature (功能)-------------test suite (測試用例集)
    Scenario(情景)-----------test case (測試用例)
    Given(給定)-------------setup(創建測試所需環境)
    When(當)----------------test(觸發被測事件)
    Then(則)-----------------assert(斷言,驗證結果)

  • 工作原理:

工作原理

三、Features

  • 語法規則:
  • 基于Gherkin。支持語言:# language: en (zh-CN)等
  • Features文件必須以.features命名。
  • 包含title,多個scenarios,每個scenario包含多個step。
  • Step定義必須以關鍵字Given,When,Then,And開始。

四、Step_definitions

  • 根據feature文件中定義的step編寫對應的測試代碼。

五、Cucumber command

  • 運行:*.feature文件。cucumber會分析feature文件中定義的step,然后去step - definitions尋找相匹配的step,執行step中的代碼。
  • 運行結果以html的形式保存,fail的情況查看對應log日志

六、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)
  • |(用來定義表格)
  • """(定義多行字符串)
  • # (注釋)

五、示例代碼

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容