一文详解e2e测试之cypress的使用

 更新时间:2023年04月24日 14:48:25   作者:今天比昨天更好哦  
这篇文章主要介绍了e2e测试之cypress的使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

用e2e测试想要达到什么目的?

  • 将被测试的单元放在特定环境下,选中并让它发生交互,达到目标结果。
  • 在测试之前,为测试用例创造它需要的环境,并进行测试,在测试结束后,将环境恢复原状。

如何启动cypress测试?

  • 在项目中安装cypress 插件库
  • 在根目录下可看见自动生成的cypress文件夹以及cypress.config.ts,在cypress.config.ts中配置baseUrl等
  • 编写测试:在cypress/e2e文件夹下编写测试用例
  • 启动测试: 终端输入 npx cypress open, 并选择e2e,选择浏览器,点击需要测试的用例即可

了解目录结构:

  • e2e: 存放编写的测试用例
  • support:cypress/support/index.js文件在每个规范文件之前运行,比如有些动作是适用于全局的,那么就可以放在这里。
  • global.d.ts:存放编写测试用例中的typing,尤其是自定义的函数需要编写的ts都是存放在这里。
  • fixtures:存放测试数据的地方,可以理解为放接口mock数据的地方
  • plugins:存放插件,插件可以是自己编写的,也可以是第三方,插件是在项目加载之前、浏览器启动之前和测试执行期间在Node中执行用的。
  • integration: 一般测试用例会写在integration下面,自带官方示例测试用例文件。
  • screenshot:当测试发生错误时,cypress会自动截图并保存
  • video:当测试发生错误时,cypress会自动录屏并保存
  • downloads: 存放测试过程中下载的文件

基础概念

Cypress和cy的区别 cypress是一个全局对象,在整个测试的过程中会持续存在,当你希望跟踪整个程序未捕获或者失败事件时,比较有用。(以下代码是自定义的fail方法,可以在各个测试用例中使用)

	Cypress.on('fail', (error, runnable) => {
		throe error;
	})

cy是单个测试的对象,它将绑定到每一个单独测试中,并且,在完成这个测试后,自动解绑和清理。

describe( )/context( ) 和 it( ) 对于一条可执行的测试用例来说,describe()和it()是两个必要的组成部分,describe()表示测试套件,context()是它的别名,可以直接用context()代替

钩子函数 - before() 运行cypress时,在开始测试前都会调用这个钩子函数,在钩子中,可以将接口代理到mock数据 - after() 在所有用例跑完后运行 - beforeEach() 每个用例开始前都会运行 - afterEach() 每个用例结束后运行。有人会在这里写下以下代码:

	describe('loggout', () => {
		beforeEach(() => {
			cy.login();
		})
	
		afterEach(() => {
			cy.logout();
		})
	})

这样的行为可能是不必要的,原因是,当测试用例跑完后,这些登录状态不仅在测试时被修改,而且会保存到程序的状态中。意味着你测试完后退出登录后,当你运行代码时,就会发现自己回到了登录页(cypress保存了你退出登录的状态)。

使用场景:

如果你想要在不同的测试用例中共享同一个变量,你可以在before或beforeEach钩子中定义这个变量,在随后的用例中使用它。

在开始测试前,准备好测试环境(向后端发起请求,准备好测试数据,或者mock数据)

以上就是一文详解e2e测试之cypress的使用的详细内容,更多关于e2e测试cypress使用的资料请关注脚本之家其它相关文章!

相关文章

最新评论