在 Artillery 中跨 YAML 文件使用全局变量
Posted
技术标签:
【中文标题】在 Artillery 中跨 YAML 文件使用全局变量【英文标题】:Using global variables across YAML files within Artillery 【发布时间】:2019-09-27 08:36:01 【问题描述】:我有什么办法可以说,定义一个 URI 将在不同的 .yml 文件中用于不同的 Artillery 负载测试?
我想在多个 .yml 文件中使用相同的 URI 来定义 config
部分中的 target
。
我在Artillery docs看到了以下内容:
可以通过 $processEnvironment 模板变量下的环境变量动态设置值。
例如,通过 SERVICE_API_KEY 环境变量为所有请求设置默认 HTTP 标头
他们展示了一个示例文档:
导出 SERVICE_API_KEY="012345-my-api-key"
火炮运行 my-test.yml
但是我不确定如何实现这一点,因为我正在使用 package.json 文件来运行 artillery run my-test.yml
命令。
【问题讨论】:
YML 与 YAML 不同,并且 YAML 文件的推荐扩展名至少自 2006 年 9 月以来一直是.yaml
。您引用的示例使用了正确的文件名,您似乎在您的帖子的其余部分中误读/歪曲了..
@Anthon - 哎呀。在那里混合网络示例和我自己的代码库。现在编辑为一致。除了我的语法错误之外,对此事有什么想法吗?
抱歉,没有。我会收到带有 yaml 标记的帖子的通知(因为我为 YAML 开发了一个 Python 加载/转储程序包),但我不知道 Artillery。
@Anthon 道歉,点击我看到的第一个。现已将标签更改为 app.yaml。
【参考方案1】:
这是我自己想出来的:
在 package.json 中创建一个新脚本。随心所欲地调用它,并执行类似的操作:
"scripts":
"start": "set ENV=https://yoursite.com&&artillery run -k yourtest.yml"
在 .yml 文件本身中是这样的:
config:
target: "$processEnvironment.ENV"
这样称呼它:
npm run start
【讨论】:
有没有一种方法可以指定多个变量? 您可以拆分 common-config.yml 作为另一个选项。请参阅此处的 --config 部分:artillery.io/docs/cli-reference【参考方案2】:IDK 为什么对我来说导出有效,我的意思是:
"scripts":
"start": "export ENV=https://yoursite.com&&artillery run -k yourtest.yml"
【讨论】:
以上是关于在 Artillery 中跨 YAML 文件使用全局变量的主要内容,如果未能解决你的问题,请参考以下文章
Artillery 是不是支持 GET 和 POST 以外的 html 方法?