首页 > 其他分享 >WEB自动化-01-Cypress 介绍

WEB自动化-01-Cypress 介绍

时间:2022-09-01 23:55:06浏览次数:98  
标签: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官方并未提供其架构图,根据网络资料整理如下所示:

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,测试,测试代码,运行
From: https://www.cnblogs.com/surpassme/p/16648266.html

相关文章

  • 22/09/01闲话
    一般来讲各学校今天都开学了,偏偏我们学校9.4才开学,今天分班考试,人麻了,语文差点没写完,数学最后一题恶臭,7位数除以六位数,算戳了,比标准答案差了0.01,啊啊啊啊啊啊啊!!!不过晚开学......
  • [Google] LeetCode 1101 The Earliest Moment When Everyone Become Friends 并查集
    Therearenpeopleinasocialgrouplabeledfrom0ton-1.Youaregivenanarraylogswherelogs[i]=[timestampi,xi,yi]indicatesthatxiandyiwillbe......
  • 第一章节01
    第一章节01创建项目时的注意事项一般都时建一个空的工程文件(project)然后再里面建Java模块便于管理,后再建class设置工程结构将SDK和语言等级设置为同一等级,图中......
  • day01-GUI坦克大战01
    JavaGUI-坦克大战1.Java绘图坐标体系坐标体系介绍:下图说明了一个Java坐标体系。坐标原点位于左上角,以像素为单位。在Java坐标体系中,第一个是x坐标,表示当前位置为水平方......
  • 学习doc —— Android开发者 01 组件基础
    组件们——初识活动Activity用户交互的入口点,拥有单个屏幕。服务Service通用的入口点,只在后台保持运行而没有界面。不会阻断用户与活动Activity的交互。其他组件来启......
  • MATLAB R2019b安装 及其启动慢的解决方案
       MATLAB是一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。可以进行矩阵运算、......
  • 数据库学习笔记 (本数据库学习笔记以SQL sever 2019 为例进行学习) 20220831 第四节课
    两层映像两层映像E-CMapping:ExternalSchema-ConceptualSchemaMapping----将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换----便于用户观察和......
  • AGC010 记录
    A.Addition题意给定一个\(n\)个整数的数组\(A\),每次可以删去一对奇偶性相同的\(A_i,A_j\),再添加一项\(A_i+A_j\)。判断是否能够通过若干次操作后使得数组只剩下一项。B......
  • [JOI 2015 Final]舞会 解题报告
    [JOI2015Final]舞会题目描述IOI王国为了庆祝JOI公主的生日,举行了舞会。预定有 N 位贵族要参加舞会。 N 是奇数。将贵族们从 \(1\) 到 \(N\) 编号。每个贵......
  • 2022-09-01 第二小组 张晟源(ajax,axios)
    JavaWeb一,AJAX异步刷新(局部刷新),前端技术,可以给后台发请求异步:整个页面不会全部刷新,只有某个局部刷新  验证用户名存在 使用ajax发送请求,页面不可以通过后台跳转......