自动化测试是前端开发中必不可少的一部分,它可以提高测试效率,减少漏测的可能性,可以有效地降低开发和维护成本。而 Cypress 作为一个新一代的自动化测试工具,能够更好地解决传统测试工具的一些问题。本文将为大家介绍 Cypress UI 自动化测试的实战经验,帮助小白也能轻松上手。
Cypress 简介
Cypress 是一个前端测试工具,它采用了现代 Web 开发的方式来运行测试,使得写出高质量的自动化测试变得更加容易。 Cypress 可以与大多数前端框架和库兼容,并且提供了许多有用的功能,如自动等待、重试机制、截图等。除此之外,Cypress 还使用了它自己的浏览器,可以更好地复现和调试测试用例,这也是它与其他测试工具相比的优势。
准备工作
在开始实战前,我们需要在本地安装 Cypress,它支持多种不同的安装方式。我们可以使用 npm 或 yarn 包管理器来进行安装,也可以直接下载 ZIP 文件并解压缩到本地目录。本文将以 npm 方式进行安装。首先,在控制台中进入到项目的根目录,输入以下命令:
npm install cypress --save-dev
安装完成后,我们就可以启动 Cypress 了。可以使用以下命令来打开 Cypress 的客户端应用程序:
./node_modules/.bin/cypress open
这时,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
中。在这个文件中,我们可以使用 describe
和 it
来定义一个测试套件和测试用例。以下是一个简单的测试用例示例:
describe('Cypress UI 自动化测试实战', () => { it('测试 Cypress 是否能够访问页面', () => { cy.visit('https://www.baidu.com') }) })
在这个例子中,我们定义了一个测试套件 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
,或在命令行中输入以下命令来运行测试用例:
./node_modules/.bin/cypress run
注意,在运行测试用例时,我们要确保被测试的网站或服务是可用的。如果网站或服务无法访问,测试就会失败,这与测试用例中的代码没有关系。
结论
在这篇文章中,我们介绍了 Cypress UI 自动化测试的实战经验。我们学习了如何安装 Cypress,如何编写测试用例和运行它们。当然,这只是一个入门级别的指南,并不是涵盖完整 Cypress 的各种功能和用法。了解了 Cypress 的基本用法后,我们可以尝试更多复杂的测试用例,并学习如何使用 Cypress 的更高级功能,比如修复断言失败时的截图、代码覆盖率等等。相信这些内容可以帮助大家在前端测试中取得更好的成果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670b7bc6d91dce0dc88adf2d