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

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

通过之前的一些介绍,已经大概其明白cypress是个啥,但是具体使用的细节点还有很多,需要一步步的去学习。


在安装好cypress之后,会生成一个默认项目,这个项目结构里的各个文件夹是干嘛使的呢?


1268169-20210505212534510-1673776301.png


一、fixtures


这个名称简直太熟悉了,pytest里我研究最多的就是关于fixtures的用法了。不过在cypress中,倒也没那么复杂了,主要是用来存放静态数据用的。这个位置

可以通过配置指定其他的目录。


比如说测试的时候需要用到某个依赖接口的返回值,那么就可以直接copy接口真正的返回值到后缀是.json的文件里,配合cy.fixture()就可以使用这个

文件里的数据了,不需要真正的去请求那个接口。


示例代码里有个example.json的文件,里面内容是:


{
  "name": "Using fixtures to represent data",
  "email": "hello@cypress.io",
  "body": "Fixtures are a great way to mock data for responses to routes"
}


在测试文件里就可以使用了。当发出一个匹配GET **/comments/*的请求时,Cypress会拦截它并使用example.json中的对象进行回复。


1268169-20210505214139222-40578080.png


所以,使用fixtures有如下优点:


  • 去除对外部功能模块的依赖。
  • 可以在测试文件里用上你想要的返回值。
  • 因为没有真正发送网络请求而是直接从本地文件里取,所以速度也更快了。


二、integration


这里就是存放测试文件的地方了,官方的示例测试用例文件有很多,可以阅读之后再运行一下。


1268169-20210505214853081-99662750.png


示例代码里都是.js文件,不过除了js文件之外,还有几种后缀名的文件,cypress也会把它当成测试文件:


  • .jsx,是带有扩展的JavaScript文件,其中可以包含处理xml的ECMAScript。
  • .coffee,是一套JavaScript的转移语言,相比于JavaScript,语法更严格。
  • .cjsx,CoffeeScript中的jsx文件。


这个同样也可以配置到别的目录。


三、plugins


用于存放插件。


插件比较特殊,是在项目加载之前、浏览器启动之前和测试执行期间在Node中执行用的。因为cypress的一个独有特点就是所有在浏览器之内运行,因此

如果需要做一些浏览器之外的动作,直接通过cypress就比较困难了。这时候就要通过插件去扩展cypress的内部行为,也可以自定义自己的插件。


这点跟pytest的插件差不多意思,都是用来扩展框架用的。


应用场景举例:


  • 动态修改环境变量。
  • 修改特定浏览器的启动参数。


四、support


默认情况下,项目都会包含一个cypress/support/index.js支持文件。在每个测试文件运行之前,cypress都会自动加载这个支持文件。


比如有些动作是适用于全局的,那么就可以放在这里。比如说,在cypress/support/index.js里增加如下代码:


beforeEach(() => {
  cy.log('在每个测试执行前都会运行我cypress/support/index.js!!!!!!')
})


运行后,会看到每个测试用例都会有个log输出。


1268169-20210505221511347-736703915.png


以上就是默认结构的介绍,cypress是支持自定义项目结构的,这个到后面继续了。

相关文章
|
1天前
|
存储 JSON 测试技术
Cypress默认文件结构
Cypress默认文件结构
|
8月前
|
测试技术
创建第一个 Cypress 应用后使用命令行 npx Cypress open 报错的原因分析
大多数测试工具(如 Selenium)通过在浏览器外部运行并通过网络执行远程命令来运行。Cypress 正好相反。 Cypress 在与 Web 应用程序相同的运行循环(run loop)中执行。 Cypress 背后是一个 Node 服务器进程。 Cypress 和 Node 进程彼此不断通信、同步和执行任务。访问这两个部分(也就是对应的前后台操作)使我们能够实时响应 Web 应用程序的事件,同时在浏览器之外执行需要更高权限的任务。
38 0
Cypress 好用的用法
大家好,我是阿萨。之前学习了cypress的最基本的用法。可是有些同学还是反馈不会写cypress,怎么办? 今天就列举一些常见的cypress的写法。
215 0
|
JavaScript 前端开发 Ubuntu
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
|
存储 XML JSON
Cypress系列(4)- 解析 Cypress 的默认文件结构
Cypress系列(4)- 解析 Cypress 的默认文件结构
377 0
Cypress系列(4)- 解析 Cypress 的默认文件结构
|
资源调度 索引
Cypress系列(98)- cypress-xpath 插件, xpath() 命令详解
Cypress系列(98)- cypress-xpath 插件, xpath() 命令详解
341 0
Cypress系列(98)- cypress-xpath 插件, xpath() 命令详解
Cypress系列(99)- cypress-downloadfile 插件, downloadFile() 命令详解
Cypress系列(99)- cypress-downloadfile 插件, downloadFile() 命令详解
320 0
Cypress系列(99)- cypress-downloadfile 插件, downloadFile() 命令详解
|
JavaScript
Cypress系列(91)- Cypress.config 命令详解
Cypress系列(91)- Cypress.config 命令详解
392 0
Cypress系列(91)- Cypress.config 命令详解
Cypress系列(100)- cypress-file-upload 插件, attachFile() 命令详解
Cypress系列(100)- cypress-file-upload 插件, attachFile() 命令详解
347 0
Cypress系列(100)- cypress-file-upload 插件, attachFile() 命令详解
|
JavaScript
Cypress系列(93)- Cypress.dom 命令详解
Cypress系列(93)- Cypress.dom 命令详解
259 0
Cypress系列(93)- Cypress.dom 命令详解