> For the complete documentation index, see [llms.txt](https://docs-ru.testmace.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-ru.testmace.com/master/variables/user-variables.md).

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

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

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

* Значения переменных могут быть строками, объектами и массивами и содержать ссылки на другие переменные.
* Переменные задаются для каждого узла и наследуются от узлов родителей.
* Значение переменных может ссылаться на другие переменные.
* Имена [встроенных переменных](/master/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/-LiMuFFKgZGs5cuIEhIy)

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

![Подсветка значения переменной](/files/-LiMuIDuHPhY4ieNJGmf)

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

![Кнопка открытия диалога переменных](/files/-LiMuLP7hf6Kl1GHtlIx)

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