> 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/variables/user-variables.md).

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

Раздел “Переменные” - это 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;

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

![](https://1540441421-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-MEY9ibfnYvDKaURxlxy%2F-MEY9mDK7gTKvDfOGiWm%2Fvariables1.gif?alt=media\&token=3a1d85be-cefd-4daf-ae05-57107f4c3b4b)

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

![](https://1540441421-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-MEY9ibfnYvDKaURxlxy%2F-MEYAHlXOuh-KHuhndW9%2FScreenshot%202020-08-12%20at%2018.57.17.png?alt=media\&token=1a488086-2e8c-4597-999f-513c474ccfb0)

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

![](https://1540441421-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-MEY9ibfnYvDKaURxlxy%2F-MEYAgxCEmpEv54HZrYP%2FScreenshot%202020-08-12%20at%2018.58.23.png?alt=media\&token=0bacf5d4-f58c-4055-8033-bdcef09631f7)

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