WEB自动化-01-Cypress 介绍

  1. Cypress 介绍

1.1 Cypress 简介

Cypress是一款基于 JavaScript的下一代前端测试工具。可以对浏览器中运行的任何内容进行快速、简单和可靠的测试。
Cypress是 自集成的,提供了一套完整的 端到端测试,无须借助其他外部工具,安装后即可快速地创建、编写、运行测试用例,且对每一步操作都 支持回看。另外Cypress也支持 集成测试单元测试

Cypress 底层协议不采用 WebDriver

1.2 Cypress 原理

大多数测试工具(Selenium/Webdriver)通过在浏览器外部启动一个代理客户端,再通过网络向代理客户端发送命令来运行。而Cypress则刚好相反,其与应用程序在同一个生命周期里执行。

Webdriver底层通信协议基于JSON Wire Protocol,运行需要网络通信。

Cypress 的运行流程如下所示:

  • 1.在运行测试程序后,Cypress会首先使用webpack将测试代码中的所有模块放入一个js文件中
  • 2.再启动浏览器,并将测试代码注入到一个空白页面,然后在在浏览器中运行

1.3 Cypress架构图

Cypress官方并未提供其架构图,根据网络资料整理如下所示:

WEB自动化-01-Cypress 介绍

1.4 Cypress 特性

Cypress主要特性如下所示:

  • 时间穿梭

Cypress在测试代码运行时会自动进行截图拍照。待测试运行结束后,用户可以其提供的Test Runner里,将鼠标悬停命令日志中的命令上,查看每一步具体的操作

  • 实时加载

在测试代码修改后,Cypress可以自动加载改动并重新运行测试

  • Spies/stubs/clocks

Cypress允许验证和控制测试函数的行为,Mock服务器响应或更改系统时间等

  • 运行结果一致性

可以保证每次运行的测试结果都一样

  • 可调试性

在测试结果为失败时,可以直接通过开发者工具进行调试

  • 自动等待

在使用Cypress时,无需在测试代码中添加wait或sleep等。Cypress会自动等待元素至可操作状态才执行命令或断言。

  • 网络流量控制

Cypress可以Mock服务器返回结果。无需连接后端服务器即可实现轻松控制。模拟网络请求。

  • 截图和视频

在测试结果为失败时,Cypress会自动截图,在无GUI界面运行时,会建制整个测试套件的视频,从而可以轻松掌握测试运行情况。

原文地址:https://www.jianshu.com/p/8c1d4c3beec1

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

WEB自动化-01-Cypress 介绍

Original: https://www.cnblogs.com/surpassme/p/16648266.html
Author: Surpassme
Title: WEB自动化-01-Cypress 介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581639/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 支付宝沙箱

    支付宝支付 ## 支付宝的沙箱环境 – [密钥生成文档](https://opendocs.alipay.com/open/291/105971): 公钥(给别人,方便其他人验证某…

    Linux 2023年6月8日
    0101
  • Redis源码系列(一)

    Redis源码系列——内存管理 函数原型 src/zmalloc.h 函数指针与 void*指针的使用,提供了一个泛型的机制 /*stringfication*/ #define …

    Linux 2023年6月8日
    0101
  • 账号分享

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月8日
    0113
  • Shell语法

    在 Shell 中引号分为 2 种:单引号、双引号。 ( 1 )双引号 由双引号括起来的字符,除 $ 、倒引号和反斜线( \ )仍保留其特殊功能外,其余字符通常作为普通字符对待。 …

    Linux 2023年5月28日
    091
  • R基础

    1、官网下载R和Rstudio 2&#x…

    Linux 2023年6月8日
    094
  • SQL实战——02. 查找入职员工时间排名倒数第三的员工所有信息

    查找入职员工时间排名倒数第三的员工所有信息CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT N…

    Linux 2023年6月14日
    0100
  • Null和空值对于avg计算时产生的影响以及处理

    为什么要关注这一块呢:1.面试中可能会有涉及 2.工作中真的也可能会用,既然有可能我也用过,就拿出来跟大家分享一下,上一篇的博文,数据已准备好就不做数据准备的介绍了。 step1:…

    Linux 2023年6月14日
    083
  • Kafka 配置文件详情

    kafka的配置分为 broker、producter、consumer三个不同的配置 一 、BROKER 的全局配置 最为核心的三个配置 broker.id、log.dir、zo…

    Linux 2023年6月8日
    089
  • 微信小程序全局变量的设置、使用、修改过程解析

    微信小程序全局变量的设置、使用、修改过程解析 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的。 php;g…

    Linux 2023年6月7日
    0105
  • Mybatis源码解读-插件

    注册 xml方式的注册,是在XMLConfigBuilder#pluginElement完成的。 不明觉厉的同学,请参考上一篇文章:Mybatis源码解读-配置加载和Mapper的…

    Linux 2023年6月7日
    099
  • Pandas中的常用函数

    1. map、apply、applymap 参考:Pandas教程 | 数据处理三板斧——map、apply、applymap详解 在日常的数据处理中,经常会对一个 DataFra…

    Linux 2023年6月13日
    090
  • Wine 运行百度云盘 中文乱码解决;wine中文乱码解决;fedora 34 运行百度网盘;

    今天需要下个 imagenet 的 ILSVRC2012 数据集,找到了网友在百度网盘中分享的下载好的; 但是因为本人使用的是 fedora 34 系统,所以尝试下载 百度网盘 l…

    Linux 2023年6月14日
    0105
  • CANoe的安装和使用

    CANoe的简介 CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环境,全称叫CAN open environment。CANoe集合了网络监控、数据获取/记录…

    Linux 2023年6月13日
    0210
  • 二进制插入

    二进制插入__牛客网 (nowcoder.com) 题意为 让m插入到n的第j位到第i位 方法1: class BinInsert { public: int binInsert(…

    Linux 2023年6月13日
    0102
  • MySQL之外键、表关系及SQL查询关键字

    一、外键 假设现在我们有一张员工信息表,表的字段如下: id # 主键 name # 姓名 age # 年龄 dep_name # 部门名称 dep_desc # 部门描述 单从数…

    Linux 2023年6月14日
    080
  • (读书笔记)基于CMMI的软件工程及实训指导 第13-16章

    一、软件测试 软件测试是为了发现程序中的错误而执行的过程。测试只能证明软件有错,而不能保证软件程序没错。 1. 软件版本 Alpha版 公司内测版本 Beta版 对外公测版本 发布…

    Linux 2023年6月14日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球