Cypress和Excel测试数据

Cypress和Excel测试数据,cypress,Cypress,是否有人在运行cypress测试时使用excel存储测试数据?我试图使这项工作,但由于我不能访问文件系统与browserify我不能读取excel测试数据文件。有人用这个吗?你有关于如何让它工作的链接/代码吗 谢谢。我意识到普通的excel处理软件包无法与cypress和typescript一起使用,因为您使用的是browserfiy。browserify将阻止您执行文件读/写操作 作为一种解决方法,我只在浏览excel文件之前读取它(在plugins/index.js中),然后将其转换为jso

是否有人在运行cypress测试时使用excel存储测试数据?我试图使这项工作,但由于我不能访问文件系统与browserify我不能读取excel测试数据文件。有人用这个吗?你有关于如何让它工作的链接/代码吗


谢谢。

我意识到普通的excel处理软件包无法与cypress和typescript一起使用,因为您使用的是browserfiy。browserify将阻止您执行文件读/写操作

作为一种解决方法,我只在浏览excel文件之前读取它(在plugins/index.js中),然后将其转换为json文件并保存在fixtures文件夹中


然后在beforeAll钩子中的support/index.js中,我将json文件作为fixture读取,并将其保存到一个别名变量中。现在,我可以解析来自别名变量的数据,并在整个测试过程中在需要时在cypress上下文中使用它。这对我来说很有用。

以下是如何使用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”);
});
});
});
});