我刚刚开始使用赛普拉斯进行API测试自动化。我想使用Cypress.env
在测试文件中访问一些环境变量。赛普拉斯文档将配置文件(cypress.json
)列为存储环境变量的明显位置。
我需要测试40多家数据服务公司的众多端点。所有40种服务的业务逻辑都不同。
因此,"env"
中cypress.json
中的对象很多,因此不能在一个文件中管理。
我想解决这个问题的过程是在Fixtures中创建一个环境变量文件,为每个数据服务存储"env"
对象。但是我不确定是否可行。
还可以在一个项目中拥有多个cypress.json
文件吗?
任何建议将不胜感激。
这是我的一个数据服务提供商的"env"
变量的示例。
{
"env": {
"dataService": "XXDataService",
"companyRegNo": "XX4457ZZ",
"language": "EN",
"countryCode": "UK",
"companyType": "Ltd",
"companySearchName": "",
"searchParams": "",
"reportParams": "",
"username": "",
"password": "",
}
}
答案 0 :(得分:0)
您可以创建自己的
cypress.env.json
文件,赛普拉斯将 自动检查。此处的值将覆盖冲突 配置文件中的环境变量(cypress.json
默认)。
答案 1 :(得分:0)
我遇到了同样的问题,终于制作了自己的插件。
用法
npm i -D cypress-template-fixtures
require('cypress-template-fixtures')(on, config);
中添加 cypress/plugins/index.js
。module.exports = (on, config) => {
require('cypress-template-fixtures')(on, config); // Add this line
return config;
};
cypress/fixtures.out/
添加到 .gitignore
。{{VAR_NAME}}
目录中的普通设备文件中使用 cypress/fixtures
。cypress/fixtures/example.json
:
{
"name": "{{NAME}}",
"title": "{{TITLE}}",
"email": "{{EMAIL}}",
"body": "{{BODY}}"
}
VAR_NAME
或 cypress.json
中提供 cypress.env.json
。CYPRESS_VAR_NAME
或 cypress-dotenv。