Cucumber--基于vue前端的自动化测试(四)

article/2025/9/25 17:02:42

cucumber是BDD (Behavior-driven development,行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试,使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法,而Cucumber是可以执行它们的工具。
cucumber本质上是使用根据正则表达式匹配自然语言,然后依次执行对应的方法,以达到测试的目的。
Gherkin是自然语言测试的简单语法,一个完整的测试由多个step组成,step是最小单元,多个step组成一个scenario,多个scenario组成一个Feature,Feature即是一组相关的测试case。
e.g.请看如下例子
在这里插入图片描述
Feature是所有测试的开头,后面跟一段描述文字,表明这个测试文件是做什么的。
Description是扩展性的文字描述,可以跟在Feature、Example、Background、Scenario、Scenario Outline下面。
Example和Scenario是一对同义词,是具体的测试case,包含了多少的steps,一般情况下,都是由Given(给定一个初始条件),When(发生了什么),Then(结果是什么)组成的。
step是cucumber的最小单元,每个step是由Given, When, Then, And, 或者But开头的。如果关键词后面的内容是完全一样的话,那么cucumber会认为这两句话是重复的,哪怕前面的关键词不一样,如
在这里插入图片描述

Given

Given一般用于在Scenario中描述系统的初始状态。它的目的是使系统在使用前处于一个已只的状态,要避免在Given中谈论交互上的事情。

When

When描述一个事件或者动作。他可以是与系统间的交互,也可以是由另一个系统触发的事件。cucumber强烈推荐每个Scenario只有一个When,当你觉得需要加更多的When的时候,通常就是需要拆分成多个Scenario的信号。

Then

Then描述期望的输出或者结果。对Then的step definition应该使用断言去比较期望值和实际值,就和单元测试差不多。

Background

当在同一个Feature里有多个Scenario有相同Given的时候,可以使用Background将这些Given抽到一起。这样这个Feature的每个Scenario在运行的时候,都会先运行一次Background。每个Feature里只能有一个Background。

tips

• 不要设置复杂的状态,除非该状态实际上是客户需要知道的
• 保持background简短,因为在阅读Scenario的时候,是需要记住background的。最好不要超过4行
• 一个feature只能有一个background,如果需要不同的background针对不同的方案,就需要分拆成不同的feature

Scenario Outline

Scenario Outline即Scenario的模板,也可写作Scenario Template。它可运行相同的Scenario多次。
在这里插入图片描述

可用Scenario Outline简化,可应用在登录画面,输入不同的用户名和密码验证登录功能是否好用。
在这里插入图片描述

注释

Gherkin使用#作为注释符号
step definition
step definition是指通过正则表达式对应到一个或多个Gherkin step的java方法。如下例子是上面例子对应的step definition
在这里插入图片描述


http://chatgpt.dhexx.cn/article/bNNNwwv5.shtml

相关文章

【Jenkins】【Jenkins 使用】Jenkins 与 Git

【文章末尾给大家留下了大量的福利】 1、概述 Jenkins 与 Git 的结合使用,可以理解为是 Jenkins 的一个强大之处。为什么要这么说,简要说明一下这个工作模式就能理解: 一个软件项目,开发过程中通常都会使用到一些源码管理工具&am…

SSH and GPG keys

问题:gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository. gitgithub.com:权限被拒绝(publickey)。 我相信很多程序员开始都会对Git比较陌生。但是用过几次,就会觉得Git的功…

自动化测试工具Cucumber的简单介绍

背景介绍 随着测试的发展,测试自动化越来越成为人们的关注点。 现在我们公司也在进行接口自动化的推广,在我看来接口自动化的价值就在于整体项目的回归,完成一些没法通过人力进行的测试,比如压力测试。 为了解决测试开发人员和…

【Jenkins】学习笔记

学习笔记 一、Jenkins1.1、Jenkins的作用 二、下载安装2.1、安装环境2.2、安装GitLab2.3、安装Jenkins 三、Jenkins Git Maven 部署配置3.1、安装maven插件3.2、新建项目3.3、自动发布到测试服务器 四、publish over ssh 配置4.1、超时机制4.2、shell的日志输出4.3、运行前清…

快速了解KEGG

我们有时候很关心基因所在的pathway、上下调控以及一堆基因富集到的pathway,再或者同源基因等信息,KEGG数据库也算是目前(注释)常用的明星数据库 KEGG:京都基因和基因组百科全书:KEGG项目于1995年5月在日本…

【Jenkins基础知识学习笔记】

文章目录 1、Master/Slave架构2、搭建步骤3、工作流程4、配置建议5、通信方式参考文档 1、Master/Slave架构 Jenkins采用Master/Slave架构,Master/Slave相当于Server和agent的概念,Master提供web接口让用户来管理Job和Slave,Job可以运行在Ma…

Gherkin语法详解之Scenario outline(四)

如果我想要对于不同的数据集,重复一个场景的所有步骤?这是一个数据驱动测试的经典案例。这将通过使用一个场景大纲来实现

BDD - BDD Automation Framwork 自动化框架

BDD - BDD Automation Framwork 自动化框架 引言BDD 测试框架Jenkins 集成Framework Components 框架组件IDEs 集成开发环境NotepadEclipseJetBrains IntelliJ IDEAMicrosoft Visual Studio 引言 BDD 自动化框架使得 QA 工程师很容易将 Gherkin Scenarios 转换成自动化测试用例…

zipkin

zipkin zipkin为分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。 architecture 如图,在复杂的调用链路中假设存在一条调用链路响应缓慢,如何定位其中延迟高的服务呢? 日志: 通…

Cucumber之二Gherkin语言学习

在本教程中,我们将向您介绍Gherkin - BDD语言(业务驱动开发)。我们将尽力详细回答这些问题原文点击这里 免费英语视频教程可见微信公众号:【软测小生】里面,请关注公号更新相关文章和视频资源。 另外有一个中国团队在做类似的事情&#…

Artifactory 简介

产品特点 http://www.jfrogchina.com/artifactory/features/ 产品对比 https://binary-repositories-comparison.github.io/

pom文件里的groupId和artifactId是什么

在学习maven项目的时候发现所有pom文件里的<dependency>下有都有两个带Id的东东&#xff1a; 它们是什么&#xff1a; groupId&#xff1a;存储的包的路径&#xff0c;一般分为多段&#xff0c;第一段为域&#xff0c;第二段为公司名。。。。。。如图&#xff0c;org是域…

artifactId到底什么意思?

打开https://repo1.maven.org/maven2/org/apache/flink/flink-table-common/1.11.2/ 会看到: 对应的依赖是: <dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-common</artifactId><version>1.11.2</version…

maven项目的groupId和artifactId什么意思?

首先要知道groupId和artifactId的存在是为了定位到你的项目&#xff0c;所以它们充当着坐标的角色。 groupId&#xff1a;group意思为组&#xff0c;所以理解为是组织Id&#xff0c;也是公司Id&#xff0c;通常它的写法与公司域名类似。一般分三段&#xff0c;即“域.公司名称.…

maven中的ArtifactId和groupId是什么

文章目录 1、了解2、举例3、说明 1、了解 之前建项目、用maven时常遇到GroupID和ArtifactID&#xff0c;一直说要弄清楚却迟迟拖延&#xff0c;今天查了一下&#xff0c;在这里做个小结。 最简单的来说&#xff1a;GroupID被俗称为包结构 ArtifactID被俗称为项目名 GroupId和…

maven中的groupId和artifactId是指什么?

groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的&#xff0c;如果你要把你项目放到maven本地仓库去&#xff0c;你想要找到你的项目就必须根据这两个id去查找。   groupId一般分为多个段&#xff0c;这里我只说两段&#xff0c;第一段为域&#xff0c;第二…

关于idea配置Spring后,在pom.xml中“<artifactId>spring-boot-maven-plugin</artifactId>”出现报红现象

(1&#xff09;出现问题&#xff0c;如图 当我们出现问题时&#xff0c;解决问题要从根源解决&#xff01; 介绍一个神奇的方法&#xff08;不建议使用&#xff09; 在<artifactId>spring-boot-maven-plugin</artifactId>下一行加上<version>2.3.5.RELEASE&l…

简单分享Maven中的groupId和artifactId

【辰兮要努力】&#xff1a;hello你好我是辰兮&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行&#xff01; 博客来源于项目以及编程中遇到的问题总结&#xff0c;偶尔会有读书分享&#xff0c;我会陆续更新Java前端、后台、…

<artifactId>spring-boot-maven-plugin</artifactId>报错问题

刚创建好项目就报错了&#xff0c;进入到maven库中Reposiory\org\springframework\boot\spring-boot-maven-plugin\下查看发现存在相关插件&#xff0c; 这种情况可以在pom.xml文件中补充上相应的版本号<version>2.3.5.RELEASE</version>&#xff0c;不知道应该补充…