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.cucumber</groupId>
      <artifactId>cucumber-java</artifactId>
      <version>4.2.6</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>io.cucumber</groupId>
      <artifactId>cucumber-junit</artifactId>
      <version>4.2.6</version>
      <scope>test</scope>
    </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插件后重启IDEA便可以正常使用了。
下面我们看看我们创建的cucumber项目
项目目录
在这里我们就完成了我们入门cucumber的第一步 生成了cucumber的一个项目

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值