如何使用 Cypress 和 Cucumber-js 中的 Gherkin 语言编写端到端测试

阅读时长 6 分钟读完

简介

端到端测试(End-to-end testing)是一种测试方式,通过模拟真实场景下用户的交互和操作,验证整个应用系统(前端和后端)的功能是否都正常,以及系统是否符合预期的业务需求和用户需求。

Cypress 是一个基于 Node.js 的前端自动化测试框架,使用起来简单方便,并且提供了强大的 API 来实现各种测试任务。而 Cucumber-js 是一个基于 BDD(行为驱动测试) 的测试框架,可以帮助团队成员使用一种通用的语言通信,以便理解和开发测试用例。

本文将介绍如何使用 Cypress 和 Cucumber-js 中的 Gherkin 语言编写端到端测试,以提高测试用例编写的可读性和可维护性。

使用 Gherkin 语言编写测试用例

Gherkin 语言是一种由 Cucumber-js 提供的用于 BDD 的语言,它的目的是为了让不同团队成员使用同一个语言来描述测试用例。在 Gherkin 语言中,测试用例被分解成多个 Scenario,每个 Scenario 又被分解成多个 Given-When-Then 步骤。其中,Given 表示场景的前置条件,When 表示场景需要执行的一系列动作,Then 表示执行完之后预期得到的结果。

示例代码:

开始使用 Cypress 进行自动化测试

首先需要在项目中添加 Cypress 和 cucumber 相关的库:

然后在项目中创建 cypress 文件夹,并在其中创建 cypress.json 配置文件和 integration 文件夹用于存放测试代码。

cypress.json 配置示例:

-- -------------------- ---- -------
-
  ---------- ------------------------
  ---------------- -----
  ----------------- ----
  -------------- --------------------------------------------------------
  ------------------- ------------------
  -------------------- -----------------------------
  -------------- ------
  ----------------------- ---
  -------------------- ------
  ----------- -------------------------
  ------------------ -
    ----------- -
      ---------- ---------
      ---------- ----
    --
    -------- ------------
    ----------- -------------------------------------------
    --------- -------------------------------------------
    ----------------------- ---------------------------
  -
-

以上配置主要设置了基本 URL 地址、视口大小、Cucumber 插件和报告插件等。

然后还需要在项目根目录下创建 cypress-cucumber-preprocessor.js 文件用于编译 Gherkin 语言的测试场景。

cypress-cucumber-preprocessor.js 文件示例:

-- -------------------- ---- -------
----- -------- - -------------------------------------------------
----- ---------- - --------------------------------------------

-------------- - ---- ------- -- -
  ----- ------- - -
    -----------------------------
    ------------------ -
      -----------------------------------------------
      -- -------
      ----------- ------- -------
      ---------- ----------- - ----------- ---- ----
    --
  --

  -- ---- -------- ----
  ----------------------- -------------------
--

其中,需要注意的是,需要添加 extensions 参数和 transform 参数,以便支持 TypeScript 的编译和处理 Gherkin 语言的测试场景。

最后,我们需要在 integration 文件夹中创建 .feature 文件和 .ts 文件。

.feature 文件示例:

.ts 文件示例:

-- -------------------- ---- -------
--- ---------- --------------- --
------ - ------ ----- ---- - ---- --------------------------------------

---------------- -- -- -
  --------------
  --------------------------------------
  -------------------------------------
  -------------------------------
---

----------------- -- -- -
  -----------------------
---

------------------- -- -- -
  --------------------------------------
---

--------------------------- -- -- -
  -------------------------- ---------
  -------------------------------------------------------- ---
---

在 Cypress 中,我们可以使用 cy.visit 方法打开某个网址,并使用各种选择器和操作来查找和操作页面上的元素。

在 Cucumber 中,我们可以使用 GivenWhenThen 等关键词来定义测试场景的前置条件、操作步骤和预期结果。

最后,我们可以在终端中使用命令 npm run cypress:run 来运行测试用例,Cypress 将会自动打开 Chrome 浏览器并运行测试脚本,我们还可以在报告插件中查看具体的测试结果报告。

总结

通过本文的介绍,我们可以了解如何使用 Cypress 和 Cucumber-js 中的 Gherkin 语言编写端到端测试。通过使用 Gherkin 语言,我们可以将测试用例变得更简洁易懂,并且减少测试代码的维护成本。同时,Cypress 的强大 API 和 Cucumber 的行为驱动测试思想也可以帮助我们快速编写可靠的测试用例,提高开发和测试效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647f3c2e48841e9894ee8fe4

纠错
反馈