# Пользовательские переменные

Раздел “Переменные” - это key-value хранилище для сохранения и повторного использования каких-либо данных. Зачастую используется для удаления дублирования и повышения читаемости: согласитесь, переменная с названием greetingUrl говорит о большем, чем просто строка <https://next.json-generator.com/api/json/get/EJvQVEVGL>.

Механизм переменных очень хорошо интегрирован во все части приложения и обладает следующими особенностями:

* Значения переменных могут быть строками, объектами и массивами и содержать ссылки на другие переменные.
* Переменные задаются для каждого узла и наследуются от узлов родителей.
* Значение переменных может ссылаться на другие переменные.
* Имена [встроенных переменных](/variables/variables.md) начинаются с $.

### Использование переменных

Использовать переменные можно в любых строковых параметрах узлов. Примерами таких параметров могут служить url, название заголовка, токен авторизации и многое многое другое. Для того, чтобы использовать переменную необходимо использовать следующий формат `${variableName}`, где `variableName` - это ссылка на переменную. Вот несколько примеров.

* `${id}`
* `${$dynamicVar.id}`
* `${$response.body.name}`

В полях параметров узлов можно комбинировать строки и ссылки на переменные. Например, в качестве url вы можете использовать следующую строку `http://${host}/posts/${$dynamicVar.id}`

Для обращения к элементу массива, которых сохранен в переменной, можно воспользоваться следующим синтаксисом `${variableName[index]}` . Например, для обращения к id третьей сущности из ответа необходимо написать `${$response.body[2].id}` . Обратите внимание, что индексация начинается с нуля.&#x20;

Для переменных работает автодополнение

![](/files/-MEY9mDK7gTKvDfOGiWm)

и подсветка значения переменной при наведении на нее

![](/files/-MEYAHlXOuh-KHuhndW9)

В интерфейсе каждого узла есть вкладка Variables, содержащая список переменных. Выглядит данная вкладка следующим образом:

![](/files/-MEYAgxCEmpEv54HZrYP)

Данная вкладка выглядит похожим образом для всех типов узлов. В следующих разделах мы подробнее рассмотрим механизм работы с переменными.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-ru.testmace.com/variables/user-variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
