一分钟认识:Cucumber框架(一)

个人感觉这个框架非常适合UI自动化测试,他不仅能把用例中的测试步骤以非常友好的形式展现出来,而且能够非常灵活的构建场景;

一、简介

  • Cucumber 是一个能够理解用普通语言 描述的测试用例的行为驱动开发(BDD)的自动化测试工具,用Ruby**编写,支持Java和·Net等多种开发语言。

  • Cucumber可以让人们用近似自然的语言去描述Feature和场景,根据Feature驱动开发。用作软件技术人员和非技术之间验收测试的桥梁。它是一个命令行工具。运行后,会执行features中的内容。feature中的step会调用stepdefinitions(Ruby代码)可以用标签来组织场景支持40多种语言高质量集成Ruby

二、Cucumber三大组成

  • 组成
    Features、Step_definitions、Cucumber command。
一分钟认识:Cucumber框架(一)_第1张图片
结构图
  • 对应传统测试工具:
    Feature (功能)-------------test suite (测试用例集)
    Scenario(情景)-----------test case (测试用例)
    Given(给定)-------------setup(创建测试所需环境)
    When(当)----------------test(触发被测事件)
    Then(则)-----------------assert(断言,验证结果)

  • 工作原理:

一分钟认识:Cucumber框架(一)_第2张图片
工作原理

三、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]

你可能感兴趣的:(一分钟认识:Cucumber框架(一))