test ui-03-cypress 入门介绍

news2024/12/24 11:30:36

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.coloradmin.cn/o/1353464.html

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

相关文章

AUTOSAR软件手册文档缩写描述,AUTOSAR_TR_PredefinedNames

由于AUTOSAR文档中的缩写太多&#xff0c;入门者看起开不方便。例如TR、SWS、SRS、EXP模块。 下载链接&#xff1a;https://www.autosar.org/fileadmin/standards/R21-11/FO/AUTOSAR_TR_PredefinedNames.pdf

阿里云服务器端口PPTP 1723放行教程

阿里云服务器安装PPTP VPN需要先开通1723端口&#xff0c;阿里云服务器端口是在安全组中操作的&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说明阿里云服务器安全组开放PPTP VPN专用1723端口教程&#xff1a; 阿里云服务器放行1723端口教程 PPTP是点对点隧道协议&#…

用js让用户输入一个数累加和

需求&#xff1a;用户输入一个数&#xff0c; 计算 1 到这个数的和。 比如 用户输入的是 5&#xff0c; 则计算 1~5 之间的累加和 并且输出到控制台 <body><script>let numprompt(请输入一个数)let sum0for(let i1;i<num;i){sumi}console.log(sum)</script…

Windows内存取证

1.分析内存镜像&#xff0c;找到内存中的恶意进程&#xff0c;并将进程的名称作为flag值提交, 格式flag{xx} pstree 以树的形式展现进程 2.分析内存镜像&#xff0c;找到黑客访问恶意链接的时间格式flag{2023-01-19 00:00:00} 目录 1.分析内存镜像&#xff0c;找到内存中…

SAM-Track online / offline配置

segment anything model&#xff08;SAM&#xff09;是Meta于2023年4月5日发布的分割基础模型。SAM 允许分割任何对象而无需微调。 可以在这里尝试SAM模型的效果。 分割效果这么好&#xff0c;都忍不住想用SAM来做场景的语义分割&#xff0c;realtime与否先放在一边&#xff0c…

BRF文件数据结构

一.BRF-文件头数据结构 type_mesh "mesh" 网格 type_material "material" 材质struct brf_header{int type_length; //4个字节, type字符串对应长度char* type_name; //根据type_length获取int type_content_num; //4个字节,对应类型所含个数,例如含有模…

快速入门ESP32——点亮你的第一个LCD屏幕

相关文章 快速入门ESP32——开发环境配置Arduino IDE 快速入门ESP32——开发环境配置PlatformIO IDE 快速入门ESP32—— platformIO添加开源库和自己的开发库 快速入门ESP32—— 解决platformIO添加开源库下载失败的问题 快速入门ESP32——点亮你的第一个LCD屏幕 前言一、移植T…

【Bootstrap学习 day7】

Bootstrap按钮 按钮样式 使用.btn相关类实现 <button type"button" class"btn">基本按钮</button> <button type"button" class"btn btn-primary">主要按钮</button> <button type"button" cl…

【linux】ufw 的基本使用

碎碎念 所有的云平台的网络流量的进出基本上有三层&#xff0c;首先是虚拟网的流量控制&#xff0c;一般是通过子网访问控制列表来控制vpc也好子网也好的流量出入&#xff0c;其次是安全组控制一层&#xff0c;通过安全组规则控制一类/一组主机&#xff08;指EC2/ECS/VM/CE这些…

单机游戏数据自动保存方案

引言 单机游戏数据的自动保存方案 大家好&#xff0c;2023年还有最后的3天&#xff01; 有小伙伴私信我&#xff0c;说: 总感觉一股脑的全盘定时保存不科学&#xff0c;也写过保存变化的玩家数据&#xff0c;但是改完数据就得手动标记一下字段变化&#xff0c;感觉不够智能&…

Linux程序、进程以及计划任务

目录 一、程序和进程 1、什么是程序&#xff1f; 2、什么是进程&#xff1f; 3、线程是什么&#xff1f; 4、如何查看是多线程还是单线程 5、进程结束的两种情况&#xff1a; 6、进程的状态 二、查看进程信息的相关命令 1、ps&#xff1a;查看静态的进程统计信息 2、…

基于ssm+vue服装商城购物系统

摘要 在基于SSM框架和Vue.js的服装商城购物系统中&#xff0c;整合了多种先进的技术&#xff0c;为电子商务领域的发展提供了有力支持。该系统不仅仅是技术层面的整合&#xff0c;更是对于业务流程和用户体验的深入考虑。以下是对该系统扩展的一些关键方面的讨论&#xff0c;以…

【笔记】书生·浦语大模型实战营——第一课

群公告 1月3日*更新 第一次课程视频链接&#xff1a;https://www.bilibili.com/video/BV1Rc411b7ns/&#xff0c;第一次课程只需要记笔记&#xff0c;没有作业。第一次课程(1月3日)和第二次课程(1月5日)到本周末(1月7日)截止&#xff0c;笔记记录在 知乎/CSDN/Github 或者任何你…

深入了解小红书笔记详情API:为内容创新提供动力

一、小红书笔记详情API简介 小红书笔记详情API是一种允许开发者访问小红书平台上的笔记详细数据的接口。通过这个API&#xff0c;我们可以获取笔记的标题、内容、标签、点赞数、评论数等详细信息。这些数据对于内容创作者和品牌来说至关重要&#xff0c;可以帮助他们了解用户喜…

Spring-IOC综述

文章迁移自语雀。 怎么查看spring的文档 ioc综述 说到spring的ioc,其实就是控制反转,为啥需要控制反转呢,其实是为了功能的增强,如果不用spring, 我们直接使用工厂方法,静态工厂方法, 都是是可以获取到对象的,但是如果需求变了,我们在类的生成时,添加了很多信息,使用工厂就不…

Flutter 中使用 ICON

Flutter Icon URL &#xff1a; https://fonts.google.com/icons&#xff1a; 在Flutter中使用 Icon 步骤如下&#xff1a; 导入图标库 在Dart 文件中导入 material.dart 包&#xff0c;该包包含了 Flutter 的图标库。 import package:flutter/material.dart;使用图标组件 …

C#高级:Lambda表达式分组处理2(WITH ROLLUP关键字)

目录 一、问题引入 二、with rollup查询 三、去掉多余数据 四、拓展 一、问题引入 查询SQL后结果如下&#xff0c;字段分别是用户、项目、批次、工作时间&#xff1a; SELECT UserID,ProjectID,ProBatchesID,WorkHour FROM MAINTABLE GROUP BY HourFiller ,ProjectID ,…

B端产品经理学习-B端产品系统调研的工具

系统性调研目标的工具 系统性调研的目标 相对于背景调研&#xff0c;系统行调研是对公司可控因素&#xff08;公司内部&#xff09;和直接作用力&#xff08;消费者、竞争者&#xff09;进行的调研。系统性调研需要输出结论&#xff0c;为达成产品或公司的战略目标而制定行动的…

Node.js+Express 获取前端get请求参数值

前端请求&#xff1a; http://localhost:3002/api/user/login?username002&password002 后端响应 router.get(/api/user/login, (req, res) > {let username req.query.username;let password req.query.password;const sqlStr SELECT * FROM sys_user where use…

基于 unittest 的 Web UI / HTTP 自动化测试框架

GitHub 上发现的一个自动化测试框架&#xff0c;封装的很厉害&#xff0c;对小白很友好&#xff0c;体验了下 demo 很不错&#xff0c;先看看下面封装好的 po 模式&#xff0c;很简洁。 """import seldom from seldom import Seldom from poium import Page, E…