9.3 Cucumber

第一章:

1.1 Cucumber是什么?

Cucumber 是 BDD 模式下实现可执行规范的开源工具,但是它的使命并不局限于做自动化验收测试,更加重要的在于其能够在团队成员之间构建统一的交流基础(feature 文件)、规范交流用语、提高各个利益相关方沟通效率和效果,从而达到提升产品质量、做成客户期望得到的产品这一最终目标。

1.2 如何使用Cucumber

Cucumber 有很多种语言的实现版本,例如 Java、Ruby、.NET、JavaScript 等等,并且 Cucumber 可以和主流的测试框架很好地集成,常见的 Selenium、SpringFramework、Ruby on Rails 等,能够方便地引入到您的测试工作中去,几乎没有任何门槛。本文以一个 Java 测试项目为例,介绍如何使用 Cucumber 的 Java 语言实现版本:Cucumber-JVM。

1.3如何在IEDA中使用cucumber

新建一个测试工程

出现下图 选择Maven->next

给Maven这个文件取个名字 下面的是ID(标识符)

然后next-->next--finish

pom.xml 中需要引入这些jar

        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <scope>test</scope>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

1.4 第一个实例

创建一个测试文件后缀为feature 内容为:

Feature: AddMuilty

  Scenario: test
    Given run

新建一个测试类TestAdd

package yide.bb; /**
 * Created by Administrator on 2017/4/19.
 */
import cucumber.api.java.en.Then;

import static groovy.util.GroovyTestCase.assertEquals;
public class TestAdd {
    @Then("run")
    public void test(){
        System.out.print("987654");
        assertEquals(1,1);
    }
}

回到feature文件中右键选择create选项

会显示一个弹出框:

其他默认 Glue是值你要测试文件的所在的包

点击运行 如下

feature文件的关键字:

| feature | "功能" |

| background | "背景" |

| scenario | "场景", "剧本" |

| scenario_outline | "场景大纲", "剧本大纲" |

| examples | "例子" |

| given | "* ", "假如", "假设", "假定" |

| when | "* ", "当" |

| then | "* ", "那么" |

| and | "* ", "而且", "并且", "同时" |

| but | "* ", "但是" |

| given (code) | "假如", "假设", "假定" |

| when (code) | "当" |

| then (code) | "那么" |

| and (code) | "而且", "并且", "同时" |

| but (code) | "但是" |

注解

@Given("与feature文件的值一样")

@When("与feature文件的值一样")

@then("与feature文件的值一样")

@And("与feature文件的值一样")

@but("与feature文件的值一样")

注意:

Scenario Outline: test multy

是测试多次列:

Feature: AddMuilty

  Scenario Outline: test multy
    Given 第一个参数 "<input1>" 第二个参数 "<input2>"
    When 运行99
    Then 结果"<result>"
    Examples:
      | input1 | input2 | result |
      | 2      | 3      | 5      |
      | 2      | 4      | 6      |
      | 3      | 3      | 6      |

测试单次

Scenario:test

results matching ""

    No results matching ""