一文详解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使用的资料请关注脚本之家其它相关文章!

相关文章

  • js和jQuery以及easyui实现对下拉框的指定赋值方法

    js和jQuery以及easyui实现对下拉框的指定赋值方法

    下面小编就为大家分享一篇js和jQuery以及easyui实现对下拉框的指定赋值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Javascript 使用function定义构造函数

    Javascript 使用function定义构造函数

    Javascript并不像Java、C#等语言那样支持真正的类。但是在js中可以定义伪类。做到这一点的工具就是构造函数和原型对象。首先介绍js中的构造函数。
    2010-02-02
  • JavaScript去掉空格的方法集合

    JavaScript去掉空格的方法集合

    JavaScript去掉空格的方法集合,脚本之家以前发布过很多的去除空格的代码,这个更多更全面。
    2010-12-12
  • bootstrap multiselect下拉列表功能

    bootstrap multiselect下拉列表功能

    这篇文章主要为大家详细介绍了bootstrap multiselect下拉列表功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法

    使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法

    今天工作中遇到个小问题,情况如下,当我在后台页面中设置Checkbox的Enable的值为false时,我在前端页面中使用脚本(chk.disabled = false),无法改变disabled的值为false,下面看看小编是怎么解决此问题的,需要的朋友一起了解了解吧
    2015-09-09
  • JS实现仿百度文库评分功能

    JS实现仿百度文库评分功能

    本文给大家分享基于js实现仿百度文库评分功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-01-01
  • JS运算符优先级与表达式示例详解

    JS运算符优先级与表达式示例详解

    这篇文章主要给大家介绍了关于JS运算符优先级与表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • javascript实现tab切换特效

    javascript实现tab切换特效

    这篇文章主要介绍了javascript实现tab切换特效,实现的方法很简单,特别适合初学者学习javascript实现tab切换特效,tab切换再也不是问题,需要的朋友可以参考下
    2015-11-11
  • 解析JavaScript中 querySelector 与 getElementById 方法的区别

    解析JavaScript中 querySelector 与 getElementById 方法的区别

    这篇文章主要介绍了JavaScript中 querySelector 与 getElementById 方法的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • uniapp js修改数组某个下标以外的所有值完整代码

    uniapp js修改数组某个下标以外的所有值完整代码

    在UniApp开发中,经常需要对数组进行操作,若要修改数组中特定下标外的所有元素,可通过map方法或for循环实现,map方法适用于生成新数组,for循环则直接修改原数组,根据项目需求选择最佳方案,需要的朋友可以参考下
    2024-09-09

最新评论