個(gè)人感覺(jué)這個(gè)框架非常適合UI自動(dòng)化測(cè)試,他不僅能把用例中的測(cè)試步驟以非常友好的形式展現(xiàn)出來(lái),而且能夠非常靈活的構(gòu)建場(chǎng)景;
一、簡(jiǎn)介
Cucumber 是一個(gè)能夠理解用普通語(yǔ)言 描述的測(cè)試用例的行為驅(qū)動(dòng)開(kāi)發(fā)(BDD)的自動(dòng)化測(cè)試工具,用Ruby**編寫(xiě),支持Java和·Net等多種開(kāi)發(fā)語(yǔ)言。
Cucumber可以讓人們用近似自然的語(yǔ)言去描述Feature和場(chǎng)景,根據(jù)Feature驅(qū)動(dòng)開(kāi)發(fā)。用作軟件技術(shù)人員和非技術(shù)之間驗(yàn)收測(cè)試的橋梁。它是一個(gè)命令行工具。運(yùn)行后,會(huì)執(zhí)行features中的內(nèi)容。feature中的step會(huì)調(diào)用stepdefinitions(Ruby代碼)可以用標(biāo)簽來(lái)組織場(chǎng)景支持40多種語(yǔ)言高質(zhì)量集成Ruby
二、Cucumber三大組成
- 組成
Features、Step_definitions、Cucumber command。
三、Features
- 語(yǔ)法規(guī)則:
- 基于Gherkin。支持語(yǔ)言:# language: en (zh-CN)等
- Features文件必須以.features命名。
- 包含title,多個(gè)scenarios,每個(gè)scenario包含多個(gè)step。
- Step定義必須以關(guān)鍵字Given,When,Then,And開(kāi)始。
四、Step_definitions
- 根據(jù)feature文件中定義的step編寫(xiě)對(duì)應(yīng)的測(cè)試代碼。
五、Cucumber command
- 運(yùn)行:*.feature文件。cucumber會(huì)分析feature文件中定義的step,然后去step - definitions尋找相匹配的step,執(zhí)行step中的代碼。
- 運(yùn)行結(jié)果以html的形式保存,fail的情況查看對(duì)應(yīng)log日志
六、Cucumber的開(kāi)發(fā)過(guò)程
- 創(chuàng)建feature文件,包括feature,scenarios和step。
- 創(chuàng)建step_definitions,即RUBY代碼并實(shí)現(xiàn)。如果只有step,沒(méi)有step definitions,會(huì)報(bào)undefined錯(cuò)。Ruby寫(xiě)法:Given /^the input "([^"]*)"$/ do |arg1|。運(yùn)行feature,控制臺(tái)中會(huì)輸出RUBY的實(shí)現(xiàn)方法,只要實(shí)現(xiàn)step_definitions即可。
- cucumber --format progress。格式化輸出。可修改為html,xml等格式輸出。
- 添加斷言:
- 一個(gè)場(chǎng)景失敗,Cucumber將此場(chǎng)景標(biāo)記失敗,轉(zhuǎn)去執(zhí)行下一場(chǎng)景。
- 一個(gè)step失敗,會(huì)跳過(guò)這個(gè)scenario的其余step,從而終止這個(gè)scenario。
七. Gherkin方法:
- 關(guān)鍵字:
Feature
Background
Scenario
Scenario Outline
Scenarios(or Examples)
Given
When
Then
And(or But)
-
|(用來(lái)定義表格)
-
"""(定義多行字符串)
-
# (注釋)
五、示例代碼
點(diǎn)擊查看[https://github.com/maxuechaogao/demo-cucumber.git]