在Cypress中读取excel文件

在Cypress中读取excel文件,cypress,Cypress,我不熟悉柏树。如何使用Cypress从excel文件中读取数据?在google中搜索,但找不到有用的答案。以下是如何使用excel作为cypress测试源的说明 首先,您需要使用xlsx将xlsx文件转换为json 从“fs”导入{writeFileSync}; 从“XLSX”导入*作为XLSX; 试一试{ 常量工作簿=XLSX.readFile(“./testData/testData.XLSX”); const jsonData=XLSX.utils.sheet_to_json(workBo

我不熟悉柏树。如何使用Cypress从excel文件中读取数据?在google中搜索,但找不到有用的答案。

以下是如何使用excel作为cypress测试源的说明

首先,您需要使用xlsx将xlsx文件转换为json

从“fs”导入{writeFileSync};
从“XLSX”导入*作为XLSX;
试一试{
常量工作簿=XLSX.readFile(“./testData/testData.XLSX”);
const jsonData=XLSX.utils.sheet_to_json(workBook.Sheets.testData);
writeFileSync(
“/cypress/fixtures/testData.json”,
stringify(jsonData,null,4),
“utf-8”
);
}捕获(e){
投掷误差(e);
}
然后导入json文件并在每一行上循环,并以您想要的方式使用数据。在本例中,它尝试登录到系统

从“./support/pageObjects/login.page”导入{login};
const testData=require(“../fixtures/testData.json”);
描述(“动态生成的测试”,()=>{
testData.forEach((testDataRow:any)=>{
常数数据={
用户名:testDataRow.username,
密码:testDataRow.password
};
上下文(`Generating a test for${data.username}`,()=>{
它(“应该无法登录指定的详细信息”,()=>{
login.visit();
login.username.type(data.username);
login.password.type(`${data.password}{enter}`);
login.errorMsg.contains(“您的用户名无效!”);
login.logOutButton.should(“not.exist”);
});
});
});
});
在cypress中,您可以使用库创建以读取xlsx文件

用法 cypress\integration\read-xlsx.spec.js

context('Xlsx file', () => {
  it('Read excel file', () => {
    cy.task('readXlsx', { file: 'my-excel.xlsx', sheet: "Sheet1" }).then((rows) => {
      expect(rows.length).to.equal(543)
      // expect(rows[0]["column name"]).to.equal(11060)
    })
  })
})
需要安装xlsx吗 创建读取excel功能 cypress\plugins\read-xlsx.js

const fs = require('fs');
const XLSX = require('xlsx');

const read = ({file, sheet}) => {
   const buf = fs.readFileSync(file);
   const workbook = XLSX.read(buf, { type: 'buffer' });
   const rows = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
   return rows
}

module.exports = {
   read,
}
将函数用作Cypress任务(插件) cypress\plugins\index.js

const readXlsx = require('./read-xlsx')

module.exports = (on, config) => {
  on('task', {
    'readXlsx': readXlsx.read
  })
}

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@ArdentCoder向Answer添加了重要部分。我尝试了这一点,但我面临这个问题:_fs.readFileSync不是一个函数。我怎样才能解决这个问题?
const readXlsx = require('./read-xlsx')

module.exports = (on, config) => {
  on('task', {
    'readXlsx': readXlsx.read
  })
}