javascript - 从 Cypress Fixture 访问环境变量

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

我刚刚开始使用 Cypress 进行 API 测试自动化。我想使用 Cypress.env 在我的测试文件中访问一些环境变量。 cypress 文档将配置文件 (cypress.json) 列为存储环境变量的明显位置。

我需要测试来自 40 多家数据服务公司的众多端点。所有 40 项服务的业务逻辑各不相同。

因此,cypress.json 内的 "env" 中的对象数量众多,因此无法在一个文件中进行管理。

我解决这个问题的思路是在 Fixtures 中创建一个环境变量文件,存储每个数据服务的 "env" 对象。但我不确定这是否可能。

此外,一个项目中是否可以有多个 cypress.json 文件?

任何建议将不胜感激。

以下是一个数据服务提供商的 "env" 变量示例。

{
    "env": {
        "dataService": "XXDataService",
        "companyRegNo": "XX4457ZZ",
        "language": "EN",
        "countryCode": "UK",
        "companyType": "Ltd",
        "companySearchName": "",
        "searchParams": "",
        "reportParams": "",
        "username": "",
        "password": "",
    }
}

最佳答案

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

cypress-template-fixtures

使用

  1. npm i -D cypress-template-fixtures
  2. cypress/plugins/index.js 中添加 require('cypress-template-fixtures')(on, config);
module.exports = (on, config) => {
  require('cypress-template-fixtures')(on, config); // Add this line
  return config;
};
  • 将生成的fixture文件夹cypress/fixtures.out/添加到.gitignore中。
  • cypress/fixtures 目录中的普通灯具文件中使用 {{VAR_NAME}}
  • cypress/fixtures/example.json:

    {
      "name": "{{NAME}}",
      "title": "{{TITLE}}",
      "email": "{{EMAIL}}",
      "body": "{{BODY}}"
    }
    
  • cypress.jsoncypress.env.json 中提供 VAR_NAME
  • 或者在系统中提供CYPRESS_VAR_NAMEcypress-dotenv .
  • Read more docs here .

    关于javascript - 从 Cypress Fixture 访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302519/

    相关文章:

    JavaScript 循环以错误的顺序执行

    javascript - 在javascript中使用按位>>进行颜色提取

    ruby-on-rails - 使用 Rack Cache 时如何跟踪 API 请求数

    java - 如何在 Java 中从 Imgur API 获取图像

    android - map 未在 Map api v2 中加载

    python - 我无法在 vscode 中运行代码或调试 python 文件

    c++ - VSCode+LLDB 调试在 Vagrant-Ubuntu 中无法正常工作

    python - 如何使用 azure 函数编辑 azure blob 存储中的 *.csv 文件?

    javascript - 传递参数给函数

    javascript - 如何在 ASP.Net MVC 应用程序中正确放置脚本文件