我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

一文详解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使用的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了e2e测试之cypress的使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-17

Python渗透测试入门之Scapy库的使用详解

Scapy 是一个用来解析底层网络数据包的Python模块和交互式程序,该程序对底层包处理进行了抽象打包,使得对网络数据包的处理非常简便。本文就来聊聊它的具体使用,希望对大家有所帮助
2023-03-13

Python自动化测试框架之unittest使用详解

unittest是Python自动化测试框架之一,提供了一系列测试工具和接口,支持单元测试、功能测试、集成测试等多种测试类型。unittest使用面向对象的思想实现测试用例的编写和管理,可以方便地扩展和定制测试框架,支持多种测试结果输出格式
2023-05-18

Java之一文详解String字符串的用法

本文将给大家重点讲解一下String的用法,因为这个太常用,也太常考了。String字符串的内容是比较多的,需要初学者进行专门的学习,尤其是它的一些底层原理更需要我们来了解,需要的同学跟着小编一起学习吧
2023-05-19

一文详解Redux Hooks的使用细节

本篇文章带大家聊聊Redux Hooks的使用细节,希望对大家有所帮助!
2022-11-22

一文详解Spring security框架的使用

Spring Security是一个基于Spring框架的安全认证和授权框架,它提供了一套全面的安全解决方案,可以在Web应用、移动应用和Web服务等不同场景下使用。本文就来详细聊聊它的使用吧
2023-03-23

一文详解MySQL—Join的使用优化

目录mysql JOIN类型MySQL JOIN 算法Nested-Loop Join 算法执行流程工作原理时间复杂度分析block Nested-Loop Join 算法执行流程工作原理时间复杂度分析Hash Join 算法执行流程bui
2023-04-21

一文详解nodejs的path模块使用

这篇文章主要为大家介绍了nodejs的path模块使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-16

一文详解Spring AOP的配置与使用

面向切面编程(俗称AOP)提供了一种面向对象编程(俗称OOP)的补充,面向对象编程最核心的单元是类(class),然而面向切面编程最核心的单元是切面(Aspects)。本文就来和大家聊聊AOP的配置与使用,感兴趣的可以了解一下
2022-11-13

一文详解Golang中consul的基本使用

consul是一个开源服务注册和服务发现的中心,可以用于微服务的注册和服务之间的调用的发现,帮助上游服务找到下游服务的具体ip:port或者是domain,也可以使用dns的方式让consul帮你去做转发。本文就来讲讲它的具体使用吧
2023-03-06

编程热搜

目录