Cucumber入门(一)------项目生成

文章目录

    • 背景
    • 简介
    • Cucumber使用
      • 什么是Gherkin?
      • 关键字
      • 构建cucumber项目

背景

首次接触到cucumber是入职上家公司的时候,发现作为测试框架可以简洁明了的显示测试用例,后期维护方便,便喜欢上了这个框架。

简介

这个简介都是类似的,所以这里面就复制一下不在进行阐述了。
cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试,使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法,而Cucumber是可以执行它们的工具。关于BDD有兴趣自行了解。官网链接和GitHub地址,里面也有关于BDD的信息。
cucumber本质上是使用根据正则表达式匹配自然语言,然后依次执行对应的方法,以达到测试的目的。

Cucumber使用

Cucumber 有很多种语言的实现版本,例如 Java、Ruby、.NET、NodeJS 等等,并且 Cucumber 可以和主流的测试框架很好地集成,以接口自动化为例,Cucumber很好的兼容现在主流的接口测试框架,例如RestAssured,Karate,REST Client

什么是Gherkin?

关键字

主要关键字有:

关键字 中文解释
feature “功能”
background “背景”
Rule “规则” #从Gherkin加入
scenario|example “场景”, “剧本”
scenario outline|Scenario Template “场景大纲”, “剧本大纲”
examples “例子”
given "* ", “假如”, “假设”, “假定”
when "* ", “当”
then "* ", “那么”
and "* ", “而且”, “并且”, “同时”
but "* ", “但是”
given (code) “假如”, “假设”, “假定”
when (code) “当”
then (code) “那么”
and (code) “而且”, “并且”, “同时”
but (code) “但是”

还有一些辅助关键字:

“”" “文档字符串”
| “数据表”
@ “标签”
# “评论”

举个栗子:

Feature: Is it Friday yet?
  Everybody wants to know when it's Friday

  Scenario: Sunday isn't Friday
    Given today is Sunday
    When I ask whether it's Friday yet
    Then I should be told "Nop

是不是很简单明了的展示了一个测试用例呢?那我们开始学习如何快速构建一个cucumber项目吧

构建cucumber项目

下面一段盗用我师兄的话,Cucumber 之所以受到如此的推崇,与其 Executable Specification 这个特性不无关系。顾名思义,可执行规范给出了至少两个方面的意义:

  • 可执行性(Executable):您可以像执行代码(Java、Ruby…)一样运行这些规范,来验证、验收目标应用。当然,这一点是从技术人员的视角来看的;
  • 规范性(Specification):从非技术人员的视角触发,相比验证本身,他们更加关心系统功能的清晰描述:系统在什么场景下能够做什么样的事情。

这看似简单的两方面似乎关联并不是很大,但是如何能够在同一个基础(feature files)之上做到两者的融合,却是 Cucumber 最大的妙处。从项目管理人员的角度来看,Cucumber 是技术人员和非技术人员交流的桥梁,从更加深的层面来看,Cucumber 能够增加各个利益相关方的沟通,因为只有深入的沟通,在各方都理解了真正期望的功能这一基础之上,才能产出都认可的 Executable Specification!

回归到工具这一层面,Cucumber 是以 feature 文件来组织测试的,相信大家都很清楚这里之所以采用 feature 这个后缀,其实正是为了凸显用户在使用系统中所能够享受到的服务和功能。以 ATM 取钱场景为例子,需要如下的大致步骤:

  • 创建 feature 文件;
  • 生成测试 Step Definitions;
  • 运行测试用例。

下面来具体说明如何在测试工作中使用 Cucumber。
文主要是JAVA下的介绍教程。使用方法非常简单,创建一个mvn工程,在pom.xml文件引入以下依赖即可。

<dependency>
      <groupId>io.cucumbergroupId>
      <artifactId>cucumber-javaartifactId>
      <version>4.2.6version>
      <scope>testscope>
    dependency>

    <dependency>
      <groupId>io.cucumbergroupId>
      <artifactId>cucumber-junitartifactId>
      <version>4.2.6version>
      <scope>testscope>
    dependency>

我们可以使用maven命令快速构建Cucumber项目

mvn archetype:generate                      \
   "-DarchetypeGroupId=io.cucumber"           \
   "-DarchetypeArtifactId=cucumber-archetype" \
   "-DarchetypeVersion=4.2.6.1"               \
   "-DgroupId=hellocucumber"                  \
   "-DartifactId=hellocucumber"               \
   "-Dpackage=hellocucumber"                  \
   "-Dversion=1.0.0-SNAPSHOT"                 \
   "-DinteractiveMode=false"

你应该得到如下结果:

[INFO] Project created from Archetype in dir: <directory where you created the project>/cucumber
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

在IntelliJ IDEA(或者eclipse都行)中打开项目:

  • 文件->打开…->(选择pom.xml)
  • 选择Open as Project

现在,您已经安装了一个简单的Cucumber项目。接下来我们需要在IDEA中安装对应的插件Cucumber入门(一)------项目生成_第1张图片
如上图所示 我们安装完cucumber插件后重启IDEA便可以正常使用了。
下面我们看看我们创建的cucumber项目
Cucumber入门(一)------项目生成_第2张图片
在这里我们就完成了我们入门cucumber的第一步 生成了cucumber的一个项目

你可能感兴趣的:(cucumber)