test ui-03-cypress 入门介绍

cypress 是什么?

简而言之,Cypress 是一款专为现代Web构建的下一代前端测试工具。我们解决了开发人员和质量保证工程师在测试现代应用程序时面临的关键问题。

我们使以下操作成为可能:

  • 设置测试
  • 编写测试
  • 运行测试
  • 调试测试

Cypress经常与Selenium进行比较;然而,Cypress在根本上和体系结构上都是不同的。Cypress不受Selenium相同的限制。

这使您能够编写更快、更简便且更可靠的测试。

谁在使用Cypress?

我们的用户通常是使用现代JavaScript框架构建Web应用程序的开发人员或质量保证工程师。

Cypress使您能够编写各种类型的测试:

  • 端到端测试
  • 组件测试
  • 集成测试
  • 单元测试

Cypress可以测试在浏览器中运行的任何内容。

Cypress生态系统

Cypress由一个免费的、开源的、本地安装的应用程序和Cypress Cloud组成,用于记录您的测试。

首先:Cypress帮助您在本地构建应用程序时每天设置和开始编写测试。最佳的测试驱动开发!

然后:在构建一套测试并将Cypress与您的CI提供程序集成之后,Cypress Cloud可以记录您的测试运行。您将不再想知道:为什么会失败?

我们的使命

我们的使命是建立一个繁荣的、开源的生态系统,提高生产力,使测试成为一种愉快的体验,并带来开发者的幸福感。我们将自己视为倡导一个实际有效的测试过程的责任人。

我们相信我们的文档应该是平易近人的。这意味着使我们的读者完全理解不仅是什么,还包括为什么。

我们希望帮助开发人员更快、更好地构建新一代现代应用程序,而不会因管理测试而产生压力和焦虑。我们的目标是通过主动识别改进区域以生成可操作见解,借助测试结果提升软件开发的艺术。

我们知道,为了取得成功,我们必须使一个依赖于开源的生态系统繁荣。每一行测试代码都是对您代码库的一种投资,它永远不会与我们作为一个付费服务或公司相耦合。测试将能够独立运行和工作,始终如此。

我们相信测试需要很多 ❤️,我们在这里构建一个每个人都能学到并受益的工具、服务和社区。

我们正在解决每个在Web上工作的开发人员共享的最困难的痛点。

我们相信这个使命,并希望您加入我们,使Cypress成为一个持久的生态系统,使每个人都感到满意。

功能特性

Cypress是一个功能齐全、即插即用的测试框架。以下是它能够完成,而其他测试框架无法做到的一些事情:

时光旅行(Time Travel): Cypress在运行测试时会生成快照。在命令日志中悬停在命令上,以查看每个步骤发生的确切情况。

可调试性(Debuggability): 不再猜测测试失败的原因。直接从熟悉的工具(如开发者工具)中进行调试。我们可读的错误和堆栈跟踪使调试速度极快。

自动等待(Automatic Waiting): 永远不要在测试中添加等待或睡眠。Cypress会在继续之前自动等待命令和断言。不再有异步地狱。

间谍、存根和时钟(Spies, Stubs, and Clocks): 验证和控制函数、服务器响应或定时器的行为。单元测试中喜爱的相同功能现在近在咫尺。

网络流量控制(Network Traffic Control): 轻松控制、存根和测试边缘情况,而无需涉及服务器。您可以按照自己的喜好存根网络流量。

一致的结果(Consistent Results): 我们的架构不使用Selenium或WebDriver。迎接快速、一致且可靠的无故障测试。

截图、视频和测试重放(Screenshots, Videos, and Test Replay): 在失败时自动查看屏幕截图,或者如果启用,查看从CLI运行时整个测试套件的视频。将录制上传到Cypress Cloud,使用测试重放进行零配置调试,以按照运行时的方式重放测试。

跨浏览器测试(Cross Browser Testing): 在本地和持续集成流水线中在Firefox和Chrome系列浏览器(包括Edge和Electron)中运行测试。

智能编排(Smart Orchestration): 一旦设置为录制到Cypress Cloud,轻松并行化测试套件,使用Spec Prioritization首先重新运行失败的规范,并在失败时使用Auto Cancellation取消测试运行,以获得紧密的反馈循环。

不稳定测试检测(Flake Detection): 使用Cypress Cloud的Flaky测试管理发现和诊断不稳定的测试。

测试类型

Cypress可以用于编写多种不同类型的测试。

这可以进一步确保您要测试的应用程序按照预期的方式运行。

端到端测试(End-to-end):
Cypress最初设计用于在运行在浏览器中的任何内容上运行端到端(E2E)测试。

典型的端到端测试访问浏览器中的应用程序,并通过用户界面执行操作,就像真实用户一样。

it('添加待办事项', () => {
  cy.visit('https://example.cypress.io/')
  cy.get('[data-testid="new-todo"]')
    .type('编写代码{enter}')
    .type('编写测试{enter}')
  // 确认应用程序显示两个条目
  cy.get('[data-testid="todos"]').should('have.length', 2)
})

组件测试(Component):
您还可以使用Cypress挂载来自支持的Web框架的组件并执行组件测试。

import TodoList from './components/TodoList'

it('包含正确数量的待办事项', () => {
  const todos = [
    { text: '买牛奶', id: 1 },
    { text: '学习组件测试', id: 2 },
  ]

  cy.mount(<TodoList todos={todos} />)
  // 组件开始运行,就像一个小型Web应用程序
  cy.get('[data-testid="todos"]').should('have.length', todos.length)
})

API测试:
Cypress可以执行任意的HTTP调用,因此您可以将其用于API测试。

it('添加待办事项', () => {
  cy.request({
    url: '/todos',
    method: 'POST',
    body: {
      title: '编写REST API',
    },
  })
    .its('body')
    .should('deep.contain', {
      title: '编写REST API',
      completed: false,
    })
})

其他类型:
最后,通过大量官方和第三方插件,您可以编写Cypress可访问性、视觉、电子邮件等其他类型的测试。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/289043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

案例087:基于微信小程序的社区养老服务平台设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Allins 官网正式上线,铭文赛道进入 AMM 交易时代

“Allins正在通过全新的AMM方案为BRC20及多链铭文资产拓展DeFi场景&#xff0c;官网的全新上线意味着铭文资产的交易正式进入AMM时代。” 在2023年1月开始&#xff0c;Ordinals协议的推出成为了铭文赛道发展的开端&#xff0c;并为比特币这类非图灵完备的生态&#xff0c;带来了…

运用Jmeter进行登录测试

开始了解Jmeter,写篇关于Jmeter的博客做备忘,这里以苏宁易购网站的登录请求为例实战来说明测试计划元件,创建一个 Web 测试计划。 今天简单介绍Jemeter的入门,Jmeter 的安装这边就跳过,直接讲述如何使用JMETER,如何运用Jmeter进行测试。 a.下载jmeter软件 b.安装…

BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)

目录 一、什么是BLE Mesh Access Layer访问层&#xff1f; 二、Access payload 2.1 Opcode 三、Access layer behavior 3.1 Access layer发送消息的流程 3.2 Access layer接收消息的流程 3.3 Unacknowledged and acknowledged messages 3.3.1 Unacknowledged message …

HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。

用IIS 发布网站&#xff0c;不能访问且出现错误&#xff1a; HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。您无权查看此目录或页面 解决办法&#xff1a; 1.打开IIS界面&#xff0c;选中发布的网站&#xff0c;右键—>编辑…

java代码规范(适合写程序之前先了解有助于开发协同)

目录 一、类定义 二、方法定义 三、接口定义 四、变量定义 1、命名规范&#xff1a; 2、类型规范&#xff1a; 3、常量规范&#xff1a; 五、static关键字 1、静态变量&#xff08;类变量&#xff09;&#xff1a; 2、静态方法&#xff08;类方法&#xff09;&#x…

YOLOv5算法进阶改进(11)— 添加EMA注意力机制 | 基于跨空间学习的高效多尺度注意力模块

前言:Hello大家好,我是小哥谈。EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更…

STM32MP157/linux驱动学习记录

1. uboot烧录 2.linux安装nfs服务 sudo apt-get install nfs-kernel-server rpcbind安装nfs服务 在用户根目录下创建一个名为“linux”的文件夹&#xff0c;以后所有的东西都放到这个“linux”文件夹里面&#xff0c;在“linux”文件夹里面新建一个名为“nfs”的文件夹&#…

【EI会议征稿通知】第三届艺术设计与数字化技术国际学术会议( ADDT 2024)

第三届艺术设计与数字化技术国际学术会议( ADDT 2024&#xff09; 2024 3rd International Conference on Art Design and Digital Technology 所谓艺术设计&#xff0c;就是将艺术的审美感应用到与日常生活密切相关的设计中&#xff0c;使其不仅具有审美功能&#xff0c;而且…

如何使用VsCode编译C语言?

下载VsCode (1) 解压到D盘跟目录 (2) 运行[vscode.reg]&#xff0c;注册右键菜单 (3) 进入[pack]文件夹&#xff0c;运行[install.bat]。安装基本插件。 下载mingw32 (1) 解压任意目录 (2) 我的电脑右键–高级系统设置–高级–环境变量–系统变量–Path(双击)–空白行(双击)–…

2024年1月4日 十二生肖 今日运势

小运播报&#xff1a;2024年1月4日&#xff0c;星期四&#xff0c;农历十一月廿三 &#xff08;癸卯年甲子月丁卯日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;狗、猪、羊 需要注意&#xff1a;龙、鼠、鸡 喜神方位&#xff1a;正南方 财神方位&#xff1a…

sodiscar!20+学习网站,工作学习两不误!

划到最后“阅读原文”——领取工具包&#xff08;超过1000工具&#xff0c;免费素材网站分享和行业报告&#xff09; Hi&#xff0c;我是胡猛夫~&#xff0c;专注于分享各类价值网站、高效工具&#xff01; 更多内容&#xff0c;更多资源&#xff0c;欢迎交流&#xff01;公 号…

阿赵UE学习笔记——7、导入资源

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。这次将会把一个带动作和贴图的钢铁侠模型&#xff0c;导入的UE的项目中。 1、准备的资源 这里有2个fbx文件&#xff0c;都是带着网格和动画的&#xff0c;模型网格和骨骼是一样的&#xff0c;只…

服务器中了DevicData勒索病毒怎么处理

DevicData勒索病毒是最近一段时间非常流行的勒索病毒类型&#xff0c;有很多企业都不幸中招&#xff0c;给生产和经营带来了很大的影响。所以云天数据恢复中心决定就这种类型的勒索病毒&#xff0c;来和各位讲讲当服务器中了DevicData勒索病毒怎么处理。 特征 1&#xff0c;文件…

修复移动硬盘显示盘符但打不开问题

问题&#xff1a; 移动硬盘显示盘符&#xff0c;但无法打开。点击属性不显示磁盘使用信息。 分析解决&#xff1a; 这是由于硬盘存在损坏导致的&#xff0c;可以通过系统自带的磁盘检查修复解决&#xff0c;而无需额外工具。 假设损坏的盘符是E&#xff0c;在命令行运行以下命令…

论文润色会泄露吗 智能写作

大家好&#xff0c;今天来聊聊论文润色会泄露吗 智能写作&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文润色会泄露吗――保护学术隐私与安全的探讨…

数字化消费新趋势:跨境电商如何满足未来消费者需求?

在数字化浪潮的推动下&#xff0c;全球消费者的行为和期望正在发生根本性的变化。跨境电商作为连接全球的桥梁&#xff0c;不仅促进了商品的自由流通&#xff0c;更需迎接未来数字化消费的新趋势。本文将深入探讨未来数字化消费的趋势&#xff0c;以及跨境电商如何有效满足这些…

C#编程-使用构造函数和析构函数

使用构造函数和析构函数 如果想要在以创建对象时就初始化成员变量,可以创建名为构造函数的特殊函数。您可能还需要使用对象后从内存中删除这些对象。这可通过称为析构函数的函数实现。 实现构造函数 构造函数是在创建对象时自动调用的特殊方法。无须显式地调用构造函数。请…

麒麟云增加计算节点

一、安装基座系统并配置好各项设置 追加的计算节点服务器&#xff0c;安装好系统&#xff0c;把主机名、网络网线&#xff08;网线要和其他网线插的位置一样&#xff09;、hosts这些配置好&#xff0c;在所有节点的/etc/hosts里面添加信息 在控制节点添加/kylincloud/multinod…

前端工程化回顾-vite 构建神器

1.构建vite 项目 pnpm create vite2.常用的配置&#xff1a; 1.公共资源路径配置&#xff1a; base: ./, 默认是/2.路径别名配置&#xff1a; resolve: {alias: {: path.resolve(__dirname, ./src),ass: path.resolve(__dirname, ./src/assets),comp: path.resolve(__dirnam…