在Cypress中读取excel文件
我不熟悉柏树。如何使用Cypress从excel文件中读取数据?在google中搜索,但找不到有用的答案。以下是如何使用excel作为cypress测试源的说明 首先,您需要使用xlsx将xlsx文件转换为json在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
从“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
})
}