k6/secrets
k6/secrets
模块提供了对已配置 Secret Source 提供的 Secret 的访问。
属性 | 描述 |
---|---|
get([String]) | 异步地从默认 Secret Source 获取 Secret |
source([String]) | 返回指定名称的 Secret Source,然后可用于从具体 Secret Source 获取 Secret |
get
get 从默认 Secret Source 返回指定名称的 Secret 值。如果没有默认 Secret Source,或者没有该名称的 Secret,或者返回了其他错误,则会抛出异常。
source
source 返回指定名称的 Secret Source。该名称在运行 k6 时定义。
返回的对象有一个 get 方法,其功能与全局 get 相同
示例
一个简单示例,从默认源(如果已定义)按名称获取 Secret。
import secrets from 'k6/secrets';
export default async () => {
const my_secret = await secrets.get('my_secret'); // get from 1 secret source if only 1, exception if more than 1 secret source or if no secret sources
console.log(my_secret);
};
我们也可以按名称获取 Secret Source,然后专门从该 Secret Source 获取 Secret。
import secrets from 'k6/secrets';
export default async () => {
const my_secret = await secrets.source('identifier').get('my_secret'); // get secret from a source with the provided identifier
console.log(my_secret);
};
在这两种情况下,最终日志中输出的所有 Secret 都将替换为 ***SECRET_REDACTED***
。
包含多个 Secret Source 和名称的完整示例
import secrets from 'k6/secrets';
export default async () => {
const my_secret = await secrets.get('cool'); // get secret from a source with the provided identifier
console.log(my_secret == 'cool secret');
const anothersource = await secrets.source('another');
console.log((await anothersource.get('cool')) == 'cool secret');
console.log((await anothersource.get('cool')) == 'not cool secret');
};
如果运行,我们将看到从默认 Secret Source 获取到一个 Secret,而从非默认 Secret Source 获取到另一个不同的 Secret。这也表明,脚本的内部部分可以使用 Secret 的实际值,即使它在日志中被隐藏了。
$ k6 run --secret-source=mock=default,cool="cool secret" --secret-source=mock=name=another,cool="not cool secret" multi-source.test.js
...
INFO[0000] true source=console
INFO[0000] false source=console
INFO[0000] true source=console