個人感覺這個架構非常适合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]
作者:古佛青燈度流年
連結:https://www.jianshu.com/p/b934ce61c9dc
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。