Cucumber常用关键字

yizhihongxing

Cucumber常用关键字

Cucumber是一种行为驱动开发(Behavior Driven Development,BDD)工具,它可以用自然语言描述测试用例,然后将这些测试用例自动生成可执行的测试代码。在Cucumber中,有许多常用的关键字可以用于定义测试用例的各个部分。

Feature

Feature关键字用于定义一个功能或者一个行为,它是Cucumber中最高级别的概念。一个Feature由三个部分组成:Feature名称、Feature描述、以及Scenario。

示例:

Feature: 订单管理
  As a 店主
  I want to 管理订单
  So that 我可以使得自己的生意更好

  Scenario: 查看订单列表
    Given I am on the 订单管理页面
    When I click 订单列表按钮
    Then I should see 订单列表展示出来

Scenario

Scenario关键字用于定义一个测试场景,它描述了一个条件下的一组测试步骤和期望输出。一个Scenario有多个Step组成。

示例:

Scenario: 提交订单
  Given 我已选中"瑞幸咖啡"商品
  And 我已选中"中杯"规格
  And 我已填写配送地址
  When 我点击"提交订单"按钮
  Then 我应该看到"订单提交成功"的提示信息

Step

Step关键字用于定义一个测试步骤,它是一个场景的最小单位,一个Step分为三个部分:关键字、描述、以及代码实现。Cucumber默认提供了一组关键字,开发者也可以添加自定义关键字。

示例:

Given 我已选中"瑞幸咖啡"商品
And 我已选中"中杯"规格
And 我已填写配送地址
When 我点击"提交订单"按钮
Then 我应该看到"订单提交成功"的提示信息

上述示例中,GivenAndWhenThen都是Cucumber提供的默认关键字,开发者可以在Step描述中使用这些关键字,而后面的代码实现则是具体的测试脚本代码。

Given、When、Then

GivenWhenThen是Cucumber中特有的一组关键字,用于定义测试步骤的执行顺序。在使用这些关键字时,要保证它们的顺序,即先用Given给出测试场景的前置条件,再用When执行测试操作,最后用Then检查测试输出是否符合预期。

示例:

Given 银行卡中有1000元
When 我在ATM机上提取500元
Then 银行卡中应该还剩下500元

And、But

AndBut关键字用于在一个Step中添加多个描述,常常用于描述测试场景的中间状态。

示例:

Given 我已打开"瑞幸咖啡"的官网
And 我已搜索"秋季新品"
But 我没有找到我想要的咖啡

Background

Background关键字用于定义一组会被所有测试场景共享的前置条件。

示例:

Feature: 订单管理
  As a 店主
  I want to 管理订单
  So that 我可以使得自己的生意更好

  Background:
    Given 我已登录

  Scenario: 查看订单列表
    Given I am on the 订单管理页面
    When I click 订单列表按钮
    Then I should see 订单列表展示出来

  Scenario: 取消订单
    Given I am on the 订单管理页面
    When I click 某个订单的取消按钮
    Then I should see 订单状态被设置为已取消

上述示例中,Background描述了所有测试场景共享的前置条件,即需要已登录才能进行订单管理操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Cucumber常用关键字 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • C语言字符串函数与内存函数精讲

    C语言字符串函数与内存函数精讲 本文将详细讲解C语言中的字符串函数和内存函数。字符串函数主要用于对字符串的操作,而内存函数则用于对内存的操作。 C语言字符串函数 strlen函数 strlen函数用于获取字符串的长度,其原型如下: size_t strlen(const char* str); 其中,str为待获取长度的字符串,返回值为str的长度。 示例代…

    other 2023年6月20日
    00
  • 详解Redis数据结构之跳跃表

    详解Redis数据结构之跳跃表 什么是跳跃表 跳跃表(Skiplist)是Redis中用于实现有序集合(sorted set)的底层数据结构之一。它是一种可以替换平衡树的数据结构,具有插入、删除、查找等操作的时间复杂度都为O(log N),并且实现起来比平衡树要简单。 跳跃表的实现原理 跳跃表由若干个节点组成,其中第一个节点为表头,最后一个节点为表尾,每个节…

    other 2023年6月27日
    00
  • Android简单实现画图功能

    Android简单实现画图功能攻略 本攻略将详细介绍如何在Android应用中实现简单的画图功能。我们将使用Android Studio进行开发,并使用Java语言编写代码。 步骤一:创建新项目 首先,我们需要在Android Studio中创建一个新的项目。按照以下步骤进行操作: 打开Android Studio并点击“Start a new Androi…

    other 2023年8月25日
    00
  • 探索InstallShield——制作一个完整的应用程序安装实例

    探索InstallShield——制作一个完整的应用程序安装实例 1. 安装InstallShield 首先,我们需要下载和安装InstallShield。安装完成后,启动InstallShield。 2. 创建新项目 在启动InstallShield后,点击“New Project”按钮来创建一个新项目。根据提示,输入项目名称和保存路径。在弹出的“Sele…

    other 2023年6月25日
    00
  • iOS 14.5/iPadOS 14.5开发者预览版 Beta 3更新详细介绍(附下载)

    iOS14.5/iPadOS 14.5 开发者预览版 Beta 3 更新详细介绍 iOS 14.5/iPadOS 14.5 开发者预览版 Beta 3 已经推出,这次更新加入了一些很有意思的功能和修复了一些 Bug。本篇文章将为你详细介绍这次更新的所有内容和下载链接。 新功能介绍 重新设计的远程应用程序支持:iOS 14.5/iPadOS 14.5 开发者预…

    other 2023年6月26日
    00
  • 详解Angular 4.x Injector

    详解Angular 4.x Injector 在Angular 4.x中,Injector是非常重要的一个概念,是用来创建和管理Angular应用中的服务和依赖注入的关键。本篇文章将从以下三个方面详细讲解Angular 4.x中的Injector: Injector的概念和作用 如何使用Injector创建和使用服务 如何使用Injector进行依赖注入 1…

    other 2023年6月26日
    00
  • 小米平板5怎么设置开发者选项?小米平板5设置开发者选项教程

    为了更好地解答你的问题,我将按照以下步骤为你介绍如何在小米平板5上设置开发者选项: 第一步:打开小米平板5的设置界面 首先,我们需要进入小米平板5 的“设置”界面。你可以在桌面上找到设置图标,或者通过下拉通知栏进入设置界面。 第二步:进入“关于平板” 在小米平板5的设置界面中,向下滑动直至找到“关于平板”选项。点击进入该选项。 第三步:点击“MIUI版本”七…

    other 2023年6月26日
    00
  • mysql查询字段类型为json时的两种查询方式

    当MySQL的字段类型为JSON类型时,可以使用两种不同的方式进行查询。下面详细讲解这两种查询方式的使用方法: 1. 使用箭头符号(->)查询JSON字段 使用箭头符号可以查询JSON对象中的某个属性的值。具体方法如下: SELECT json_column->"$.key" FROM table_name WHERE con…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部