在 Artillery 中跨 YAML 文件使用全局变量

Using global variables across YAML files within Artillery

有什么方法可以让我定义一个 URI,该 URI 将在不同的 .yml 文件中用于不同的 Artillery 负载测试?

我想在多个 .yml 文件中使用相同的 URI 来定义 config 部分中的 target

我在 Artillery docs 上看到了以下内容:

Values can be set dynamically via environment variables which are available under $processEnvironment template variable.

For example, to set a default HTTP header for all requests via the SERVICE_API_KEY environment variable

他们展示了一个示例文档:

export SERVICE_API_KEY="012345-my-api-key"

artillery run my-test.yml

但是我不确定如何实现它,因为我正在使用 package.json 文件来 运行 artillery run my-test.yml 命令。

我自己想出来的:

在package.json中创建一个新脚本。随心所欲地命名它,并做类似这样的事情:

"scripts": {
    "start": "set ENV=https://yoursite.com&&artillery run -k yourtest.yml"
}

.yml 文件本身是这样的:

config:
  target: "{{$processEnvironment.ENV}}"

这样称呼它:

npm run start

IDK 为什么但对我来说导出有效,我的意思是:

"scripts": {
    "start": "export ENV=https://yoursite.com&&artillery run -k yourtest.yml"
}

可能不是很复杂但有用的东西是这样的:

config:
  target: "https:/"

然后在 url 中,您可以为每种情况 URL 放置其余的

- get:
    url: "/myUrl1.com"

- get:
    url: "/myUrl2.com"