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可访问性、视觉、电子邮件等其他类型的测试。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用宝塔在Linux面板搭建网站,并实现公网远程访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)处理任务队列中的任务

一、处理任务队列中的任务 &#xff08;1&#xff09;EventLoop启动 EventLoop初始化和启动 // 启动反应堆模型 int eventLoopRun(struct EventLoop* evLoop) {assert(evLoop ! NULL);// 取出事件分发和检测模型struct Dispatcher* dispatcher evLoop->dispatcher;// 比较…

2024阿里云Alibaba Cloud Linux 3镜像版本大全说明

Alibaba Cloud Linux阿里云打造的Linux服务器操作系统发行版&#xff0c;Alibaba Cloud Linux完全兼容完全兼容CentOS/RHEL生态和操作方式&#xff0c;目前已经推出Alibaba Cloud Linux 3&#xff0c;阿里云百科aliyunbaike.com分享Alibaba Cloud Linux 3版本特性说明&#xff…

面试算法83:没有重复元素集合的全排列

题目 给定一个没有重复数字的集合&#xff0c;请找出它的所有全排列。例如&#xff0c;集合[1&#xff0c;2&#xff0c;3]有6个全排列&#xff0c;分别是[1&#xff0c;2&#xff0c;3]、[1&#xff0c;3&#xff0c;2]、[2&#xff0c;1&#xff0c;3]、[2&#xff0c;3&…

如何在anaconda里安装basemap和pyproj库

当直接使用conda命令进行安装basemap和pyproj库时&#xff0c;会出现版本不对应的报错问题(如下图)&#xff0c;所以此篇博客用以展示如何安装basemap和pyproj库 题主默认使用的anaconda源已经切换成了清华大学源&#xff0c;但是仍然会出现报错&#xff0c;所以不是源的问题&a…

haproxy笔记

文章目录 场景haproxy配置文档地址 场景 还得先从场景说起。 生产环境redis检查&#xff0c;发现配置的redis地址不对。 redis有3个节点。 192.168.0.1 192.168.0.2 192.168.0.3 但是配置的是 192.168.0.9 端口是16379。 好奇怪有没有&#xff0c;是不是配错了? 问了下部署大…

CMake入门教程【核心篇】函数(function)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「本文的内容」&#xff1a;CMake入门教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1. 函数的定义与基本…

vue3对比vue2是怎样的

一、前言 Vue 3通过引入Composition API、升级响应式系统、优化性能等一系列的改进和升级,提供了更好的开发体验和更好的性能,使得开发者能够更方便地开发出高质量的Web应用。它在Vue.js 2的基础上进行了一系列的改进和升级,以提供更好的性能、更好的开发体验和更好的扩展性…

labview 与三菱FX 小型PLC通信(OPC)

NI OPC服务器与三菱FX3U PLC通讯方法 一、新建通道名称为&#xff1a;MIT 二、选择三菱FX系列 三、确认端口号相关的参数&#xff08;COM端&#xff1a;7.波特率&#xff1a;9600&#xff0c;数据位&#xff1a;7&#xff0c;校验&#xff1a;奇校验&#xff0c;停止位&#xf…

海外住宅IP代理的工作原理和应用场景分析,新手必看

海外住宅IP代理作为一种技术解决方案&#xff0c;为用户提供了访问全球网络资源和维护隐私安全的方法。本文将介绍海外住宅IP代理的工作原理和应用场景&#xff0c;帮助读者更好地理解和利用这一技术。 一、工作原理 海外住宅IP代理的工作原理基于代理服务器和IP地址的转发。它…

ITSS服务工程师vs ITSS服务经理:哪个职位更适合你?

✨在信息技术服务领域&#xff0c;ITSS服务工程师和ITSS服务经理是两个极具吸引力的职位。但它们各自的特点和要求是什么&#xff1f;哪个更适合你的职业规划和个人兴趣&#xff1f;接下来&#xff0c;我们将为你详细解读这两个职位的区别&#xff0c;帮助你做出明智的选择&…

Win32 基本程序设计原理总结

目录 1. Windows系统 基本原理 2. 需要什么函数库&#xff08;.LIB&#xff09; 2.1 C Runtimes&#xff1a; 2.2 Windows API 3. 需要什么头文件&#xff08;.H&#xff09; 4. Windows 程序运行的本质 5. 窗口类的注册与窗口的诞生 6.消息 6.1 消息分类&#xff1a;…

HTML基础知识 【一篇就够】

文章目录 html是什么&#xff1f;html的历史html的版本html的基本结构常用的html标签常用属性html中的注释html元素和标签的区别 html文本格式化标题和段落粗体和斜体下划线和删除线超链接图像标签列表标签表格标签 html表单表单标签文本框、密码框和多行文本框单选框和复选框下…

咖啡茶饮营销不止「9 块 9」,门店「VACS」需要全面提升

每一座城市 CBD 的写字楼下和热门商圈的街边&#xff0c;都是咖啡茶饮的战场。作为餐饮行业的热门赛道&#xff0c;咖啡茶饮近年来一直保持高速增长。据统计&#xff0c;截至今年 10 月 31 日&#xff0c;陆陆续续又有约 15 万家店铺开门营业…… 白热化竞争下&#xff0c;茶饮…

modbus tcp通讯

配置pom.xml <dependency><groupId>com.infiniteautomation</groupId><artifactId>modbus4j</artifactId><version>3.0.3</version> </dependency><repositories><repository><releases><enabled>…

2023到2024年:前端发展趋势展望

本文探讨了2023年至2024年之间前端领域的发展趋势。我们将关注以下几个方面的变化&#xff1a;无代码/低代码开发的兴起、WebAssembly的广泛应用、跨平台技术的发展、人工智能在前端的应用以及用户体验的不断优化。 随着技术的飞速发展&#xff0c;前端开发在推动互联网与移动应…

Google Gemini接口调用(node版)

一、打开Google AI Studio https://makersuite.google.com/app/apikey 二、在国外服务器上部署一个接口用于真正的请求 const sdAxiosOnAzure async (req, res) > {let {config {url: https://sinkin.ai/api/inference,method: post,data: {},timeout: 30 * 60 * 1000,}…

计算机网络期末复习题(一)

文章目录 第一章第二章第三章第四章第五章第六章 第一章 1.在OSI七层结构模型中&#xff0c;处于数据链路层与传输层之间的是&#xff08;&#xff09; 选项A&#xff1a;物理层 选项B&#xff1a;网络层 选项C&#xff1a;会话层 选项D&#xff1a;表示层 正确答案&#xff…

Python爬虫中的协程

协程 基本概念 协程&#xff1a;当程序执行的某一个任务遇到了IO操作时&#xff08;处于阻塞状态&#xff09;&#xff0c;不让CPU切换走&#xff08;就是不让CPU去执行其他程序&#xff09;&#xff0c;而是选择性的切换到其他任务上&#xff0c;让CPU执行新的任务&#xff…

网络安全—认证技术

文章目录 加密认证对称密钥体制公钥密码体制公钥的加密公钥身份认证和加密 鉴别码认证MAC鉴别码 报文摘要认证认证 加密只认证数字签名 通过了解以前前辈们使用的消息认证慢慢渐进到现代的完整的认证体系。所以在学习的时候也很蒙圈&#xff0c;因为前期的很多技术都是有很严重…