如果想从头学起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

默认文件结构

在使用 cypress open 命令首次打开 Cypress,Cypress 会自动进行初始化配置并生成一个默认的文件夹结构,如下图

前言

这里先介绍文件结构中每种文件的作用是啥,后面再具体写代码的栗子

fixtures 测试夹具

简介

  • 测试夹具通常配合 cy.fixture() 使用
  • 主要用来存储测试用例的外部静态数据
  • fixtures 默认就在 cypress/fixtures 目录下,但也可以配置到另一个目录

外部静态数据的详解

  • 测试夹具的静态数据通常存储在 .json 文件中,如自动生成的 examples.json
  • 静态数据通常是某个网络请求对应的响应部分,包括HTTP状态码和返回值,一般是复制过来更改而不是自己手工填写

fixtures 的实际应用场景

如果你的测试需要对某些外部接口进行访问并依赖它的返回值,则可以使用测试夹具而无须真正访问这个接口(有点类似 mock)

使用测试夹具的好处

  • 消除了对外部功能模块的依赖
  • 已编写的测试用例可以使用测试夹具提供的固定返回值,并且你确切知道这个返回值是你想要的
  • 因为无须真正地发送网络请求,所以测试更快

命令示例

要查看 Cypress 中每个命令的示例,可以打开  cypress/integration/examples ,里面都是官方提供的栗子

test file 测试文件

简介

测试文件就是测试用例,默认位于 cypress/integration ,但也可以配置到另一个目录

测试文件格式

所有在 integration 文件下,且文件格式是以下的文件都将被 Cypress 识别为测试文件

  • .js :普通的JavaScript 编写的文件【最常用啦】
  • .jsx :带有扩展的 JavaScript 文件,其中可以包含处理 XML 的 ECMAScript
  • .coffee :一套 JavaScript 转译的语言。有更严格的语法
  • .cjsx :CoffeeScript 中的 jsx 文件

创建好后,Cypress 的 Test  Runner 刷新之后就可以看到对应测试文件了

plugin file 插件文件

前言

  • Cypress 独有优点就是测试代码运行在浏览器之内,使得 Cypress 跟其他的测试框架相比,有显著的架构优势
  • 这优点虽然提供了可靠性测试,但也使得和在浏览器之外进行通信更加困难【痛点:和外部通信困难】

插件文件的诞生

  • Cypress 为了解决上述痛点提供了一些现成的插件,使你可以修改或扩展 Cypress 的内部行为(如:动态修改配置信息和环境变量等),也可以自定义自己的插件
  • 默认情况,插件位于 cypress/plugins/index.js 中,但可以配置到另一个目录
  • 为了方便,每个测试文件运行之前,Cypress 都会自动加载插件文件 cypress/plugins/index.js

插件的应用场景  

  • 动态更改来自 cypress.json,cypress.env.json,CLI或系统环境变量的已解析配置和环境变量
  • 修改特定浏览器的启动参数
  • 将消息直接从测试代码传递到后端

后面再详解插件在项目中的实际运用

support file 支持文件

简介

  • 支持文件目录是放置可重用配置项,如底层通用函数或全局默认配置 
  • 支持文件默认位于 cypress/support/index.js 中,但可以配置到另一个目录
  • 为了方便,每个测试文件运行之前,Cypress 都会自动加载支持文件 cypress/support/index.js

如何使用支持文件

只需要在 cypress/support/index.js 文件里添加 beforeEach() 函数即可,如下面例子

这将能实现每次测试运行前打印出所有的环境变量信息

Cypress系列(4)- 解析 Cypress 的默认文件结构的更多相关文章

  1. 【cypress】6. cypress的默认文件结构介绍

    通过之前的一些介绍,已经大概其明白cypress是个啥,但是具体使用的细节点还有很多,需要一步步的去学习. 在安装好cypress之后,会生成一个默认项目,这个项目结构里的各个文件夹是干嘛使的呢? 一 ...

  2. Cypress系列(5)- 自定义 Cypress

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 Cypress 不仅支持用户自定义 ...

  3. Cypress系列(44)- 命令行运行 Cypress

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 前面也介绍过 Cypress 命令 ...

  4. Cypress系列(60)- 运行时的截图和录屏

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 背景 在测试运行时截图和录屏能够在测试错 ...

  5. Cypress系列(63)- 使用 Custom Commands

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Custom Commands 自定义命 ...

  6. Cypress系列(65)- 测试运行失败自动重试

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 重试的介绍 学习前的三问 什么是重试测试 ...

  7. Cypress系列(69)- route() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 管理控制整个网络请求 重要注意事项 ...

  8. Cypress系列(70)- server() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 启动服务器以开始将响应路由到 cy ...

  9. Cypress系列(90)- Cypress.Cookies 命令详解以及如何跨测试用例共享 Cookies

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress.Cookies 共有三个 ...

随机推荐

  1. 解决php获取不到Authorization问题

    我用的是thinkphp3.2.3, 在使用jwt的时候通过Authorization传递token,但是每次都接收不到,通过修改..htaccess文件,问题成功解决了,下面是的.htaccess文 ...

  2. 视频文件自动转rtsp流

    最近碰到一个项目需要用到 rtsp 视频流做测试, 由于真实环境的 摄像头 并不能满足需求,故尝试了一下用本地视频文件转换成rtsp视频流做测试,记录一下~ 采用方案: Docker + EasyDa ...

  3. webpack4使用出现ERROR in Template execution failed: ReferenceError: HtmlwebpackPlugin is not defined

    问题描述 博主在使用webpack4的时候,使用了ejs文件,先附上ejs中的代码: <!doctype html> <html lang="zh-CN"> ...

  4. 3D三栅极晶体管(摘抄)

    英特尔的科学家们在2002年发明了三栅极晶体管——这是根据栅极有三面而取名的. 传统“扁平的”2D平面栅极被超级纤薄的.从硅基体垂直竖起的3D硅鳍状物所代替.电流控制是通过在鳍状物三面的每一面安装一个 ...

  5. Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义

    MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声. out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再 ...

  6. 【SMB源码解析系列】——001.JumpEngine函数

    在SMB的源码中大概有不到20处看起来很奇怪的指令,它的格式是通过jsr指令调用一个名为JumpEngine的函数,其后并不是跟随某些后续的逻辑指令,而是通过.dw定义了一系列16位地址. 我们可以看 ...

  7. mysql数据库如何修改密码及权限分配

    如何修改Mysql密码 Mysql用户密码采用md5加密函数加密(单向加密) SELECT PASSWORD('root'); -- *81F5E21E35407D884A6CD4A731AEBFB6 ...

  8. 关于idea的一次踩坑记录-Auto build completed with errors

    maven项目添加pom依赖后,一直不能正常导入所依赖的jar包,并且报错“ Auto build completed with errors”

  9. How To Mitigate Slow HTTP DoS Attacks in Apache HTTP Server

    http://www.acunetix.com/blog/web-security-zone/articles/slow-http-dos-attacks-mitigate-apache-http-s ...

  10. 王艳 201771010127《面向对象程序设计(java)》第十八周学习总结

    实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...