量角器:如何加密传递给 UI 自动化脚本的密码?

Protractor: How to encrypt passwords passed to the UI automation scripts?

我在基于 UI 的自动化中使用带有打字稿的量角器。我想将通过 json 文件(使用 json 格式作为测试数据文件)传递的密码加密到我的规范中。 我的站点密码在 Json 文件中公开,但我想以某种方式对其进行加密。

听起来将密码作为环境变量传递而不是将其存储在文件中会更容易,但如果您仍然坚持在这里加密它:

  1. 生成密钥(用于解密的密码)并将其保存在笔记中(您将需要它来解密您的密码)
let uuid = require('uuid');
let key  = uuid();
console.log(key); // 3467f7d0-190f-4319-836e-8918a778d120
  1. 安装crypto-js

  2. 加密密码:

let CryptoJS = require("crypto-js");
let encryptedPassword = CryptoJS.AES.encrypt('Pa$sword123!', key).toString();
console.log(encryptedPassword); // U2FsdGVkX18iI0gLaeQmf2z7Ev82hMynTo1c2TkCCJo=
  1. 将其保存在您的 json 数据文件中
{
    'username': 'test-account',
    'password': 'U2FsdGVkX18iI0gLaeQmf2z7Ev82hMynTo1c2TkCCJo='
}
  1. 在任何需要使用密码的地方执行此操作
let CryptoJS = require("crypto-js");
let decryptedPassword  = CryptoJS.AES.decrypt(json['password'], process.env.PASSWORD_KEY).toString(CryptoJS.enc.Utf8);
await login(json.username, decryptedPassword);
  1. 运行 量角器,使用以下命令指定步骤 #1 中的解密密钥
PASSWORD_KEY=3467f7d0-190f-4319-836e-8918a778d120 protractor protractor.conf.js

P.S.

当我说使用密码作为环境变量启动量角器更容易时,我的意思是这个

PASSWORD=Pa$sword123! protractor protractor.conf.js

然后将密码称为process.env.PASSWORD