Cucumber
1.介绍
--cucumber是一种支持BDD(behavior driven development行为驱动开发)的自动化测试框架,主用于编写测试用例。本身用Ruby编写的,核心是语言解释器Gherkin,并且支持多种测试步骤实现语言,比如Java和.net,支持多种框架,如jenkins,junit.
补充:BDD
(1)BDD是一种敏捷软件开发的技术,它鼓励软件项目中的各个参与者之间的协作,包括非技术人员
(2)TDD与BDD区别:
TDD是测试驱动开发,关注设计,如单元测试
BDD着重关注需求及客户的业务价值,所描述的需求用例可独立于软件系统存在的,不取决于是否有软件系统来支撑
(3)BDD好处
关注用户行为;交付最有用的功能;在团队内部维护一致的术语 ;消除协作与沟通障碍;探究需求实例 ;编写和维护需求;形成活的文档
(3)User Story: 在敏捷开发过程中是通过用户故事来将需求具体化为一个个现实的可见的开发任务
(4)Scenario: BDD 用一系列场景来定义验证标准
(5)常见BDD框架: Ruby / JAVA – RSpec, Shoulda, Cucumber
--cucumber的测试用例一般由测试场景和测试步骤组成
--cucumber的测试场景一般由纯自然语言来进行描述,易懂
2.cucumber的三个组成部分
--Features(Gherkin语言) :基于Gherkin,功能文件必须由.feature命名,使用简单英语文本定义,包含Feature、Scenario及每个场景的step
--Step_definitions (Ruby语言):Step definition必须以:Given, When, Then, And等开头,每个步骤下编写相应测试代码
3.Gherkin functions
--Feature(功能) test suite(测试用例集)
--Scenario(情景) test case(测试用例)
--Given(给定) setup(创建测试所需环境)
--When(当) test(触发被测事件)
--Then(则) assert(满足条件后的输出,常用断言验证结果)
--But
--Scenario Outline 要和 Examples 一起使用,否则会报错(多个数据值执行同一个scenario时使用)
--Given, When, Then, But都可以在一个Scenario里出现一次或者不出现
--Given 后的And 等同于 Given, Then后的And 等同于Then
--Tag, 通过使用tag组织scenario的执行,如@test