在前端开发中,自动化测试是必不可少的环节。Cypress 是一个流行的自动化测试框架,可以帮助我们快速、方便地进行前端自动化测试。本文将介绍如何使用基于脚手架的自动化测试框架,通过实例来探究 Cypress 如何使用,如何提高测试覆盖率。
为什么需要自动化测试?
前端网站或应用的变化飞快,每个人的浏览器、移动设备都有不同的显示效果,所以我们需要测试工程师来测试网页或应用的所有功能和特征。手动测试费时费力,而且容易出错,自动化测试能让测试工作更高效和准确。自动化测试可大大降低代码中的错误和失误,避免在生产环境中被用户发现。此外,它对于检测性能、可靠性,以及行为准确性来说是很重要的。
Cypress 简介
Cypress 是一个用 JavaScript 编写的开源自动化测试框架,为我们提供了一组强大的 API,可以通过它们与网站进行交互。Cypress 还提供了可视化的测试结果展示,使得它的使用变得更加简单、高效。Cypress 包括了:测试框架、运行器、断言库、Chai(Javascript的断言库)、Mocha(Javascript测试框架) 等技术。
如何使用 Cypress
步骤一:安装 Cypress
安装 Cypress 非常方便和易操作,我们可以在终端输入以下命令:
npm install cypress --save-dev
步骤二:快速开始
运行以下命令,Cypress 会创建默认的测试环境和示例测试用例:
npx cypress open
步骤三:创建测试用例
我们可以在 ./tests/
目录下创建测试用例,例如 ./tests/sample_test.js
,以下是一个简单的测试用例:
describe('Sample Test', () => { it('Visits the Cypress Homepage', () => { cy.visit('https://www.cypress.io/') cy.contains('The web has evolved. Finally, testing has too.').should('be.visible') }) })
在这个测试用例中,我们使用了 describe()
方法来定义测试集,使用 it()
方法来定义测试用例。cy.visit()
方法用于打开我们要测试的网站,在这里是 'https://www.cypress.io/'。`cy.contains()` 搜索在 DOM 上的文本,并断言它应该存在于页面上,同时使用 .should('be.visible')
来测试可见性。
步骤四:运行测试
运行以下命令,Cypress 将加载我们的测试套件并扫描我们的测试用例:
npx cypress run
Cypress 还提供了一个可视化工具,可以使用以下命令来打开:
npx cypress open
基于脚手架的自动化测试框架
以上是 Cypress 的基础使用方法,但随着项目的发展,我们需要更好的组织我们的测试代码,并建立更好的结构。这时,一个基于脚手架的自动化测试框架就能派上用场了。
步骤一:安装测试框架
假设我们使用的是 Webpack 构建,使用以下命令安装 Cypress:
npm install --save-dev mocha mocha-webpack cypress
步骤二:配置测试框架
在 package.json
文件中添加以下配置:
-- -------------------- ---- ------- ---------- - ------- -------- ----- ---------- -------- ------ ------------ -------- --- ------ ------------------------------------ ------------- -------- --- ------ ---------------------------------- -------- -- ---------------- - ---------------- ---------------------- ----------------- - ------- -------- -- --- ---------- -- ---------------- ------- -- ----- ------ ---- -- ---------------- - -- --------------- - ---------- - ---------------------------- - -
我们在 package.json
中定义了以下几个可用测试命令:
npm run test
:运行所有的测试用例。npm run cypress
:启动测试用例窗口以手动执行测试用例。npm run test:spec
:运行所有.spec.js
扩展名的测试用例。npm run test:watch
:在文件更改时运行测试。
我们可以在 test 模块中使用 mocha-webpack
。我们应该采取以下步骤:
- webpack 配置应该遵循一定的模式,并暴露出两个变量
mocha
和document
. 我们也需要在webpack.config.js
中定义好解析规则,以便正确处理 JavaScript 和相关文件。
-- -------------------- ---- ------- -------------- - - ------ - ----- ----------------- ------- - --------- -------- - -- ------- - --------- ------------ ----------- --- -- -------- - ----------- ------- ------- -------- -------- -------- -------- ------------------------ --------- --------------- -- ------- - ------ - - ----- -------------- -------- --------------- ---- -------------- -- ----------- -- - ----- ----------------------- ---- --------------- -- - ----- ---------- ---- --------------- - - -- -------- - --- ------------------ -------------- --- - ------- ----- --------- ------------------- - - -- --- ---------------------- -------------- - --------- ------------------------------------ - --- --- ---------------------- --------- ------------- -------------- ---------- --- --- ----------------------------- --- ------------------------------------- --- ------------------------------------- ----- --------- --------- ---- ------------------------------- -------------------- ---------- --------- ------------- ---- --- --- ------------------------------------- ----- ---------- --------- ---- ------------------------------- --------------------- ---------- --------- ------------- ---- -- -- ---------- - ------------ --------- ---- ---- - -
- 我们仍然需要使用
cypress.json
文件配置 Cypress,具体内容如下:
{ "baseUrl": "http://localhost:8080", "integrationFolder": "cypress/integration", "supportFile": "cypress/support/index.js", "videRecording": false, "testFiles": "**/*.spec.js" }
这里,我们设置了 baseUrl
为我们的本地端口号(默认是 8080
),testFiles
为包含我们所有测试的 .spec.js
文件。
步骤三:创建测试用例
在 ./cypress/integration
文件夹中新建一个测试文件,例如 ./cypress/integration/sample_test.spec.js
。
-- -------------------- ---- ------- ---------------- ------ -- -- - ------------- -- - ------------- -- ------- - ------ -- -- - ------------------------------ -- ------- - -------- -- -- - --------------------------------- -- --
步骤四:运行测试
我们可以在终端输入以下命令来运行测试:
npx cypress run
或者输入以下命令以开启可视化的测试窗口:
npx cypress open
Cypress 将自动扫描您的 cypress/integration
文件夹,并显示您在 ./cypress/integration/sample_test.spec.js
中定义的测试用例。
总结
在这篇文章中,我们简单介绍了 Cypress 的基本使用,然后深入探讨了如何使用基于脚手架的自动化测试框架。希望这篇文章对你有所帮助,能够更好的组织和管理前端自动化测试框架。如果你和我一样一直在寻找最佳的测试方法,将这些方法找到并结合使用,你将能够轻松地编写和管理测试用例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fe6d2795b1f8cacdd32f9b