如何使用 Cypress 进行 UI 自动化测试

Cypress 是一款流行的前端自动化测试工具,它带来了许多前所未有的便利。Cypress 基于 Node.js 构建,提供丰富的 API,可以轻松地进行 UI 自动化测试,支持跨浏览器、跨平台的测试。

为什么选择 Cypress

Cypress 在自动化测试中的优劣势是怎样的?

优势

  • UI 交互式 Debugger:Cypress 带有一个可视化的测试运行器,非常易于使用和调试。
  • 针对性强:Cypress 是专门为前端开发而设计的工具,它提供了许多测试前端应用程序所需的方法和工具。
  • 测试速度快:Cypress 采用记录-回放方式进行 API 调用,而不是 WebDriver 测试方式,测试速度更快。
  • 实时 Reload:Cypress 可以实时重新加载你的测试代码,这使得你可以快速地更新你的测试代码。
  • 可控性强:Cypress 带有一个可编辑的测试运行器,允许你在测试运行期间交互式地更改代码。

劣势

  • 只支持前端测试,无法模拟后端 API 等。
  • 可能会受到跨域问题的影响。
  • Cypress 的工具集合可以使学习曲线陡峭,但一旦掌握,开发效率将不断提高。

综合考虑,Cypress 吸引了越来越多的前端开发人员和测试人员,成为前端测试自动化的首选之一。

设置 Cypress

安装

安装 Cypress 很简单,仅需在项目根目录下运行以下命令:

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

配置

安装完成后,需要进行一些配置才能正常使用 Cypress。

首先我们需要修改配置文件 cypress.json,来指定 Cypress 执行测试的行为。

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

配置文件中包含许多选项,其中一些较为重要,值得注意:

  • baseUrl: 指定被测试应用程序的根 URL。
  • integrationFolder: 指定 Cypress 测试文件存放的文件夹。
  • defaultCommandTimeout: 检测命令是否运行超时时间,默认为4s,一般需要加长。
  • viewportWidth/viewportHeight: 指定浏览器的视口宽度和高度。

编写测试

在 Cypress 中,我们通常使用 .spec.js 文件编写测试。每个 .spec.js 文件定义了一个测试套件。

定位元素

Cypress 通过一些选择器方法来定位元素,包括:

  • cy.get(selector): 根据给定的选择器定位元素。
  • cy.contains(content): 根据给定的文本定位元素。
  • cy.xpath(xpath): 使用 XPath 定位元素,需要额外安装 cypress-xpath

断言

Cypress 通过一些断言方法来验证测试结果,包括:

  • cy.should('contain', content): 验证页面中是否包含指定的文本。
  • cy.should('be.visible'): 验证是否可见。
  • cy.should('have.class', className): 验证是否包含指定的类名。

示例代码

以下为一个用 Cypress 编写的简单测试:

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

在这个示例中,我们使用了 Cypress 的各种 API 来定位元素、输入文本、点击按钮以及验证测试结果。运行该测试会在执​​行器上打开一个浏览器,并在此执行测试套件。

结论

通过本文的介绍和示例代码可以看出,Cypress 提供了许多强大功能,使得编写 UI 自动化测试变得轻松愉快。Cypress 的交互式 Debugger、实时 Reload 和针对性强等优势,让开发人员在进行测试的同时提高了工作效率。同时需要注意的是,每一款工具都有其局限性,Cypress 无法模拟后端 API 等,因此需要选择适合自己的测试工具。

无论如何,在前端自动化测试的选型上,Cypress 可以成为你的首选之一。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6739aca9317fbffedf180362