Источники переменных

Блок variable_source в сценариях

Используются в

Источники переменных

csv file

Пример

variable_source "users" "file/csv" {
  file              = "users.csv"                   # required
  fields            = ["user_id", "name", "pass"]   # optional
  ignore_first_line = true                          # optional
  delimiter         = ","                           # optional
}

Создание источника из csv. Добавление ему имени users.

Использование переменных из данного источника

{% raw %}{{.source.users[0].user_id}}{% endraw %}

Параметр fields является необязательным.

Если этого параметра нет, то в качестве имен полей будет использоваться имена в первой строке csv файла, если ignore_first_line = false.

Если ignore_first_line = true и отсутствуют поля, то в качестве имен будут использоваться порядковые номер

{% raw %}{{.source.users[0].0}}{% endraw %}

json file

Пример

variable_source "users" "file/json" {
  file = "users.json"     # required
}

Создание источника из json файла. Добавление ему имени users.

Файл должен содержать любой валидный json. Например:

{
    "data": [
        {
            "id": 1,
            "name": "user1"
        },
        {
            "id": 2,
            "name": "user2"
        }
    ]
}

Использование переменных из данного источника

{% raw %}{{.source.users.data[next].id}}{% endraw %}

Или пример с массивом

 [
    {
        "id": 1,
        "name": "user1"
    },
    {
        "id": 2,
        "name": "user2"
    }
]

Использование переменных из данного источника

{% raw %}{{.source.users[next].id}}{% endraw %}

variables

Пример

variable_source "global" "variables" {
  variables = {
    host = localhost
    port = 8090
  }
}

Создание источника с переменными. Добавление ему имени global.

Использование переменных из данного источника

{% raw %}{{.source.global.host}}:{{.source.global.port}}{% endraw %}

Дополнительная особенность данного источника - возможность использовать функции рандомизации

Подробнее см функции рандомизации