Cypress系列(44)- readFile()、writeFile() 命令详解

236 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

readFile 作用

使读取文件并返回内容

语法格式

cy.readFile(filePath)
cy.readFile(filePath, encoding)
cy.readFile(filePath, options)
cy.readFile(filePath, encoding, options)

filePath

项目根目录(包含默认 cypress.json 配置文件的目录)中需要读取的文件的路径

encoding

读取时需要使用的编码

  • ascii
  • base64
  • binary
  • hex
  • latin1
  • utf8
  • utf-8
  • ucs2
  • ucs-2
  • utf16le
  • utf-16le

options

  • log: 是否将命令显示到命令日志中,默认 true
  • timeout: 命令超时时间

正确用法

cy.readFile('users.json')

命令返回结果

文件内容

读取 txt 文件的栗子

测试代码

运行结果

读取 json 文件的栗子

json 文件数据

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz",
  "address": {
    "street": "Kulas Light",
    "suite": "Apt. 556",
    "city": "Gwenborough",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "-37.3159",
      "lng": "81.1496"
    }
  }
}

测试代码

运行结果

读取出来是一个属性对象

读取 yaml 文件的栗子

yaml 文件

- 1
- 2
- 3

测试代码

运行结果

yaml 扩展使用

YAML = require('yamljs');
 
// 解析 YAML 文件
nativeObject = YAML.parse(yamlString);
 
// 生成 YAML 字符串
yamlString = YAML.stringify(nativeObject, 4);
 
// 加载 YAML 文件
nativeObject = YAML.load('myfile.yml');

读取图片的栗子

测试代码

运行结果

读取 mp3 文件的栗子

测试代码

运行结果

读取 mp4 文件的栗子

测试代码

 

运行结果

writeFile作用

写入具有指定内容的文件

 

语法格式

cy.writeFile(filePath, contents)
cy.writeFile(filePath, contents, encoding)
cy.writeFile(filePath, contents, options)

 

filePath

项目根目录(包含默认 cypress.json 配置文件的目录)中需要写入的文件的路径

 

contents

要写入文件的内容,可以是字符串、数组、对象类型

 

encoding

写入时需要使用的编码

  • ascii
  • base64
  • binary
  • hex
  • latin1
  • utf8
  • utf-8
  • ucs2
  • ucs-2
  • utf16le
  • utf-16le

 

options

  • log: 是否将命令显示到命令日志中,默认 true
  • flag: 文件系统标志,默认 w
  • encoding: 写入文件时要使用的编码,默认 utf8

 

flag 文件系统标志有哪些?

 

正确用法

cy.writeFile('menu.json')

 

命令返回结果

  • contents 参数值
  • 但是我发现如果打印该命令返回结果会是一个 null

 

写入 txt 文件的栗子

测试代码

 

运行结果

记住默认是 w 模式哦,是会把文件原来的内容覆盖的,若需要追加的话使用 a 哦

 

写入 json 文件的栗子一

测试代码

 

运行结果

 

写入 json 文件的栗子二

测试代码

将 HTTP 请求的响应内容保存写入到本地文件中

 

运行结果

 

使用 a+ 模式的栗子

测试代码

 

运行结果