Cypress UI 自动化测试实战 - 小白也能上手

阅读时长 6 分钟读完

自动化测试是前端开发中必不可少的一部分,它可以提高测试效率,减少漏测的可能性,可以有效地降低开发和维护成本。而 Cypress 作为一个新一代的自动化测试工具,能够更好地解决传统测试工具的一些问题。本文将为大家介绍 Cypress UI 自动化测试的实战经验,帮助小白也能轻松上手。

Cypress 简介

Cypress 是一个前端测试工具,它采用了现代 Web 开发的方式来运行测试,使得写出高质量的自动化测试变得更加容易。 Cypress 可以与大多数前端框架和库兼容,并且提供了许多有用的功能,如自动等待、重试机制、截图等。除此之外,Cypress 还使用了它自己的浏览器,可以更好地复现和调试测试用例,这也是它与其他测试工具相比的优势。

准备工作

在开始实战前,我们需要在本地安装 Cypress,它支持多种不同的安装方式。我们可以使用 npm 或 yarn 包管理器来进行安装,也可以直接下载 ZIP 文件并解压缩到本地目录。本文将以 npm 方式进行安装。首先,在控制台中进入到项目的根目录,输入以下命令:

安装完成后,我们就可以启动 Cypress 了。可以使用以下命令来打开 Cypress 的客户端应用程序:

这时,Cypress 将会在项目根目录中创建一个 cypress 目录,并在其中包含测试用例。在 Cypress 的客户端应用程序中,我们可以看到所有的测试用例,如图所示:

编写测试用例

在我们开始编写测试用例之前,我们需要了解一些 Cypress 的 API。Cypress API 是基于 Promise 的,因此我们可以通过使用 async/await 来避免回调的嵌套。以下是一些基本的 Cypress API:

  • cy.visit(url) : 访问指定的 URL。
  • cy.get(selector) : 获取页面上匹配指定 CSS 选择器的元素。
  • cy.contains(text) : 匹配包含指定文本的元素。
  • cy.type(text) : 在指定元素上模拟输入文本。
  • cy.click() : 点击指定的元素。

在编写测试用例前,我们首先需要编写一个测试文件,通常为 spec.js 。这个文件应该放在 Cypress 的默认测试目录 cypress/integration 中。在这个文件中,我们可以使用 describeit 来定义一个测试套件和测试用例。以下是一个简单的测试用例示例:

在这个例子中,我们定义了一个测试套件 Cypress UI 自动化测试实战 ,其中包含了一个测试用例 测试 Cypress 是否能够访问页面 。在测试用例中,我们使用了 cy.visit 来访问指定的 URL 。现在,我们可以在 Cypress 的客户端应用程序中看到这个测试用例,如图所示:

接下来,我们将通过一个完整的测试用例来演示 Cypress 的使用,这个测试用例覆盖了 UI 的各个方面,包括文本框、下拉列表、单选按钮和多选按钮等等。

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

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

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

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

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

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

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

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

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

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

在这个测试用例中,我们首先使用 cy.visit 访问了百度网站,并在搜索框中输入了关键词,然后点击了搜索按钮。之后,我们检查了 URL 是否包含搜索关键词。在上一个测试用例中,我们提到了 cy.contains 可以用来匹配页面上包含指定文本的元素。实际上,它还可以用于断言,如果断言成功,则说明页面上包含了指定文本。这里我们使用了 cy.url() 取得当前 URL。

在下一个测试用例中,我们访问了 Runoob 网站上的一个页面,然后使用 cy.get 获取了两个元素,分别是可拖放元素和目标 Dropped 元素。我们使用了 trigger 来模拟鼠标的操作,仿佛人在进行操作一样。最后,我们使用了 should 断言目标元素的文本是否发生了变化,检查了单选按钮和多选按钮是否被选中。

运行测试用例

现在,我们已经编写了一个完整的测试用例,接下来,我们需要运行它。我们可以在 Cypress 的客户端应用程序中点击测试用例运行按钮 Run all specs,或在命令行中输入以下命令来运行测试用例:

注意,在运行测试用例时,我们要确保被测试的网站或服务是可用的。如果网站或服务无法访问,测试就会失败,这与测试用例中的代码没有关系。

结论

在这篇文章中,我们介绍了 Cypress UI 自动化测试的实战经验。我们学习了如何安装 Cypress,如何编写测试用例和运行它们。当然,这只是一个入门级别的指南,并不是涵盖完整 Cypress 的各种功能和用法。了解了 Cypress 的基本用法后,我们可以尝试更多复杂的测试用例,并学习如何使用 Cypress 的更高级功能,比如修复断言失败时的截图、代码覆盖率等等。相信这些内容可以帮助大家在前端测试中取得更好的成果。

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

纠错
反馈