Cypress 测试中如何实现 UI 自动化

阅读时长 6 分钟读完

前言

随着前端技术的不断发展,前端自动化测试也越来越受到关注。Cypress 是一个新兴的前端自动化测试工具,它以其简单易用、高效稳定的特点,受到了越来越多开发者的青睐。本文将介绍如何使用 Cypress 实现 UI 自动化测试,帮助读者更好地掌握这个工具。

Cypress 简介

Cypress 是一个基于 Electron 的前端自动化测试工具,它提供了一整套 API,可以用来模拟用户操作、验证页面元素、调试代码等。Cypress 的特点是可读性高、易于调试、运行速度快、断言库丰富等。

如何实现 UI 自动化

安装 Cypress

首先,我们需要安装 Cypress。在项目根目录下执行以下命令:

安装完成后,在 package.json 文件中添加以下脚本:

执行以下命令,打开 Cypress:

编写测试用例

在 Cypress 中,测试用例被称为“规范”(spec)。我们可以在 cypress/integration 目录下创建一个 .spec.js 文件,用于编写测试用例。

下面是一个简单的例子,用于测试百度首页的搜索功能:

这个测试用例的意思是:访问百度首页,输入关键词“Cypress”,点击搜索按钮,验证搜索结果中是否包含关键词“Cypress”。

运行测试用例

保存测试用例后,回到 Cypress 界面,点击测试用例名称,即可运行测试。

在运行过程中,Cypress 会自动打开浏览器,并模拟用户的操作。如果测试用例中的断言失败,Cypress 会在测试结果中标记为失败。

高级用法

除了基本的操作,Cypress 还提供了很多高级用法,帮助开发者更好地完成自动化测试。例如:

使用 cy.request() 发送网络请求

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

这个测试用例的意思是:访问 GitHub API,获取用户信息,并验证返回结果中的登录名是否为“github”。

使用 cy.fixture() 加载测试数据

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

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

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

这个测试用例的意思是:访问登录页面,使用不同的用户名和密码进行登录,验证登录成功和失败的情况。

cypress/fixtures 目录下创建一个 users.json 文件,用于存储测试数据。例如:

使用 cy.wrap() 将对象包装为 Cypress 对象

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

这个测试用例的意思是:访问表单页面,填写表单信息,提交表单,并验证表单信息是否被存储到本地存储中。

在表单提交后,我们可以使用 cy.wrap() 将表单数据包装为 Cypress 对象,然后使用 should() 断言本地存储中的数据是否与包装后的对象相同。

总结

本文介绍了如何使用 Cypress 实现 UI 自动化测试,包括安装 Cypress、编写测试用例、运行测试用例、高级用法等。希望本文对读者能有所帮助,更好地掌握 Cypress 这个工具。

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

纠错
反馈