You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress中实现Excel表格数据读取?

Cypress 读取Excel表格数据实现方案

Cypress 本身没有内置读取Excel文件的能力,我们可以借助xlsx社区库完成需求,以下是可直接跑通的实现步骤:


步骤1:安装依赖库

在项目根目录执行安装命令:

npm install xlsx --save-dev

步骤2:封装Cypress自定义读取命令

打开cypress/support/e2e.js(Cypress 9及更早版本对应cypress/support/index.js),添加以下代码注册全局命令:

import * as XLSX from 'xlsx';

// 自定义读取Excel命令,入参为Excel文件的本地路径
Cypress.Commands.add('readExcel', (filePath) => {
  return cy.readFile(filePath, 'binary').then((binaryContent) => {
    // 解析Excel文件为工作簿对象
    const workbook = XLSX.read(binaryContent, { type: 'binary' });
    // 默认读取第一个工作表,可替换为你实际的工作表名,比如 workbook.Sheets['用户数据表']
    const targetSheet = workbook.Sheets[workbook.SheetNames[0]];
    // 将工作表内容转换为JSON格式返回,JSON的key对应Excel第一行的表头
    return XLSX.utils.sheet_to_json(targetSheet);
  });
});

步骤3:测试用例示例

假设你存放姓名、地点的Excel文件路径为cypress/fixtures/user_info.xlsx,Excel第一行表头为姓名、地点,下面行是对应的数据。
在cypress/e2e目录下新建测试用例文件read_excel_test.cy.js,代码如下:

describe('Excel数据读取测试', () => {
  it('读取Excel中的姓名、地点字段', () => {
    cy.readExcel('cypress/fixtures/user_info.xlsx').then((excelData) => {
      // 打印所有读取到的表格数据,可在测试运行器的控制台查看
      console.log('全部Excel数据:', excelData);

      // 遍历每一行数据使用
      excelData.forEach((row, index) => {
        const userName = row['姓名'];
        const userLocation = row['地点'];
        console.log(`第${index + 1}行数据:姓名${userName},地点${userLocation}`);

        // 你可以在这里接自己的业务测试逻辑,比如将数据填入表单
        // cy.get('input#username').type(userName)
        // cy.get('input#location').type(userLocation)
      });
    });
  });
});

注意事项

  • Excel表头不要有特殊符号、前后空格,不然会导致JSON的key和你取值的字段名不匹配,返回undefined
  • 如果需要读取多个工作表,可修改自定义命令中的工作表获取逻辑,按名称取对应工作表即可
  • 若Excel文件存放在其他路径,替换readExcel方法的入参为实际绝对/相对路径即可

内容的提问来源于stack exchange,提问作者Rajna Ks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:15:05