個(gè)人感覺這個(gè)框架非常適合UI自動(dòng)化測試鹰晨,他不僅能把用例中的測試步驟以非常友好的形式展現(xiàn)出來,而且能夠非常靈活的構(gòu)建場景甥绿;
一澄峰、簡介
Cucumber 是一個(gè)能夠理解用普通語言 描述的測試用例的行為驅(qū)動(dòng)開發(fā)(BDD)的自動(dòng)化測試工具垮斯,用Ruby**編寫沼头,支持Java和·Net等多種開發(fā)語言。
Cucumber可以讓人們用近似自然的語言去描述Feature和場景,根據(jù)Feature驅(qū)動(dòng)開發(fā)。用作軟件技術(shù)人員和非技術(shù)之間驗(yàn)收測試的橋梁剖张。它是一個(gè)命令行工具顾彰。運(yùn)行后茶鹃,會(huì)執(zhí)行features中的內(nèi)容兑障。feature中的step會(huì)調(diào)用stepdefinitions(Ruby代碼)可以用標(biāo)簽來組織場景支持40多種語言高質(zhì)量集成Ruby
二、Cucumber三大組成
- 組成
Features蕉汪、Step_definitions流译、Cucumber command。
對應(yīng)傳統(tǒng)測試工具:
Feature (功能)-------------test suite (測試用例集)
Scenario(情景)-----------test case (測試用例)
Given(給定)-------------setup(創(chuàng)建測試所需環(huán)境)
When(當(dāng))----------------test(觸發(fā)被測事件)
Then(則)-----------------assert(斷言者疤,驗(yàn)證結(jié)果)工作原理:
三福澡、Features
- 語法規(guī)則:
- 基于Gherkin。支持語言:# language: en (zh-CN)等
- Features文件必須以.features命名驹马。
- 包含title革砸,多個(gè)scenarios,每個(gè)scenario包含多個(gè)step糯累。
- Step定義必須以關(guān)鍵字Given算利,When,Then泳姐,And開始效拭。
四、Step_definitions
- 根據(jù)feature文件中定義的step編寫對應(yīng)的測試代碼。
五允耿、Cucumber command
- 運(yùn)行:*.feature文件借笙。cucumber會(huì)分析feature文件中定義的step,然后去step - definitions尋找相匹配的step较锡,執(zhí)行step中的代碼。
- 運(yùn)行結(jié)果以html的形式保存盗痒,fail的情況查看對應(yīng)log日志
六蚂蕴、Cucumber的開發(fā)過程
- 創(chuàng)建feature文件,包括feature,scenarios和step俯邓。
- 創(chuàng)建step_definitions骡楼,即RUBY代碼并實(shí)現(xiàn)。如果只有step稽鞭,沒有step definitions鸟整,會(huì)報(bào)undefined錯(cuò)。Ruby寫法: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è)場景失敗雨饺,Cucumber將此場景標(biāo)記失敗钳垮,轉(zhuǎn)去執(zhí)行下一場景。
- 一個(gè)step失敗额港,會(huì)跳過這個(gè)scenario的其余step饺窿,從而終止這個(gè)scenario。
七. Gherkin方法:
- 關(guān)鍵字:
Feature
Background
Scenario
Scenario Outline
Scenarios(or Examples)
Given
When
Then
And(or But)
-
|
(用來定義表格) -
"""
(定義多行字符串) -
#
(注釋)
五锹安、示例代碼
點(diǎn)擊查看[https://github.com/maxuechaogao/demo-cucumber.git]