一分钟认识:Cucumber框架

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

转自:https://www.cnblogs.com/dami520/p/3168864.htmlhtml

我的感受这个框架很是适合UI自动化测试,他不只能把用例中的测试步骤以很是友好的形式展示出来,并且可以很是灵活的构建场景;ios

1、简介

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

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

2、Cucumber三大组成

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

  • 工做原理:工具

工做原理

3、Features

  • 语法规则:
  • 基于Gherkin。支持语言:# language: en (zh-CN)等
  • Features文件必须以.features命名。
  • 包含title,多个scenarios,每一个scenario包含多个step。
  • Step定义必须以关键字Given,When,Then,And开始。

4、Step_definitions

  • 根据feature文件中定义的step编写对应的测试代码。

5、Cucumber command

  • 运行:*.feature文件。cucumber会分析feature文件中定义的step,而后去step - definitions寻找相匹配的step,执行step中的代码。
  • 运行结果以html的形式保存,fail的状况查看对应log日志

6、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)
  • |(用来定义表格)
  • """(定义多行字符串)
  • # (注释)

5、示例代码

点击查看[https://github.com/maxuechaogao/demo-cucumber.git]测试

相关文章
相关标签/搜索