原文出自: http://www.51testing.com/html/17/15039717-2426501.html
一、简介
- Cucumber 是一个能够理解用普通语言 描述的测试用例的行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和·Net等多种开发语言。
- Cucumber可以让人们用近似自然的语言去描述Feature和场景,根据Feature驱动开发。
- 用作软件技术人员和非技术之间验收测试的桥梁。
- 它是一个命令行工具。运行后,会执行features中的内容。feature中的step会调用step definitions(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的开发过程
a. 创建feature文件,包括feature,scenarios和step。
b. 创建step_definitions,即RUBY代码并实现。如果只有step,没有step definitions,会报undefined错。Ruby写法:Given /^the input "([^"]*)"$/ do |arg1|。运行feature,控制台中会输出RUBY的实现方法,只要实现step_definitions即可。
c. cucumber --format progress。格式化输出。可修改为html,xml等格式输出。
添加断言:
一个场景失败,Cucumber将此场景标记失败,转去执行下一场景。
一个step失败,会跳过这个scenario的其余step,从而终止这个scenario。
6. Gherkin方法:
a. 关键字:
•Background
• Scenario
• Given
• When
• Then
• And
• But
• *
• Scenario Outline
• Examples
2. 编译feature文件:$ cucumber test.feature --dry-run
3. 日志说明:黄色-未定义step。绿色-通过。红色-报错。
7. Scenario:第个功能约有五到二十个场景。
8. Cucumber集成Java资料: