从赛普拉斯夹具访问环境变量

时间:2020-06-10 11:32:07

标签: javascript api visual-studio-code environment-variables cypress

我刚刚开始使用赛普拉斯进行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": "",
    }
}

2 个答案:

答案 0 :(得分:0)

引用Option-2-cypress-env-json

您可以创建自己的cypress.env.json文件,赛普拉斯将 自动检查。此处的值将覆盖冲突 配置文件中的环境变量(cypress.json 默认)。

答案 1 :(得分:0)

我遇到了同样的问题,终于制作了自己的插件。

cypress-template-fixtures

用法

  1. npm i -D cypress-template-fixtures
  2. 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;
};
  1. 将生成的夹具文件夹 cypress/fixtures.out/ 添加到 .gitignore
  2. {{VAR_NAME}} 目录中的普通设备文件中使用 cypress/fixtures

cypress/fixtures/example.json

{
  "name": "{{NAME}}",
  "title": "{{TITLE}}",
  "email": "{{EMAIL}}",
  "body": "{{BODY}}"
}
  1. VAR_NAMEcypress.json 中提供 cypress.env.json
  2. 或在系统中提供 CYPRESS_VAR_NAMEcypress-dotenv

Read more docs here