You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress中实现加解密,避免登录凭证暴露于文件及控制台?

解决Cypress测试中敏感凭证的隐藏问题

方案1:使用系统环境变量

直接将用户名、密码设为系统环境变量,在Cypress脚本中通过Cypress.env('变量名')读取,完全不写入任何项目文件。

  • 配置方式:
    • Windows命令行:set CYPRESS_USERNAME=你的用户名
    • macOS/Linux终端:export CYPRESS_USERNAME=你的用户名
    • 也可写入系统持久化配置(比如Windows系统属性、macOS的~/.zshrc)
  • 测试脚本调用示例:
    cy.get('#username').type(Cypress.env('USERNAME'));
    cy.get('#password').type(Cypress.env('PASSWORD'), { log: false }); // { log: false } 避免密码在控制台输出
    

方案2:使用.env文件+Git忽略

用.env文件本地存储凭证,通过Git忽略规则阻止该文件提交到代码仓库,团队成员各自维护本地的.env。

  • 操作步骤:
    1. 项目根目录创建.env文件,写入:
      CYPRESS_USERNAME=你的用户名
      CYPRESS_PASSWORD=你的密码
      
    2. 在.gitignore中添加.env,确保文件不会被提交
    3. 安装dotenv依赖:npm install dotenv --save-dev
    4. 在cypress.config.js中加载环境变量:
      require('dotenv').config();
      module.exports = defineConfig({
        e2e: {
          env: {
            username: process.env.CYPRESS_USERNAME,
            password: process.env.CYPRESS_PASSWORD
          }
        }
      });
      
    5. 脚本中读取方式同方案1,注意密码输入时加{ log: false }

方案3:Cypress专属环境变量文件

利用Cypress自带的cypress.env.json存储凭证,同样通过Git忽略保护文件不被共享。

  • 操作步骤:
    1. 创建cypress.env.json文件:
      {
        "username": "你的用户名",
        "password": "你的密码"
      }
      
    2. 将cypress.env.json加入.gitignore
    3. 脚本中直接读取:
      cy.get('#password').type(Cypress.env('password'), { log: false });
      

核心注意点

  • 所有存凭证的文件必须加入.gitignore,杜绝提交到代码仓库的可能
  • 输入密码时必须添加{ log: false },防止密码在Cypress控制台、测试报告中泄露
  • 团队成员各自配置本地环境变量或凭证文件,无需共享敏感内容

内容的提问来源于stack exchange,提问作者MOHAMED ASLAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 06:16:11