• Cucumber 入门【转】


    原文出自: 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资料:

    https://github.com/cucumber/cucumber-jvm

  • 相关阅读:
    PHP使用iconv函数遍历数组转换字符集
    ping localhost出现地址::1
    在 Windows 7 中禁用IPv6协议/IPv6隧道
    ping localhost 返回 ::1的导致不能打开http://localhost的原因及解决
    [LeetCode] Climbing Stairs
    [LeetCode] Binary Tree Level Order Traversal II
    [LeetCode] Set Mismatch
    [LeetCode] Power of Four
    [LeetCode] Power of Three
    [LeetCode] Power of Two
  • 原文地址:https://www.cnblogs.com/jessica2015/p/4777843.html
Copyright © 2020-2023  润新知